none
MailVersand aus anderem Programm RRS feed

  • Frage

  • Ich weiß nicht, ob ich die Frage im richtigen Forum stelle, aber ich versuche es einfach einmal.

    Ich habe mit Visual Studio 2015 ein Programm geschrieben, welches jeden Tag  in einer Datenbank nachschaut,

    ob heute jemand Geburtstag hat. Wenn ja, versendet er an alle eine E-Mail zur Info, wer Geburtstag hat.

    Jetzt zum Problem:

    Das Programm habe ich auf einen MS-Server 2012 installiert. Auf diesem Server läuft Outlook 2010.

    Wenn ich das Programm normal starte, funktioniert alles so, wie es sein soll.

    Definiere ich aber genau diese Anwendung als Aufgabe, so arbeitet er das Programm zwar ab, jedoch wenn

    er im Programmcode auf das senden der Mail kommt, bricht er ab.

    Vorgang abgebrochen (Ausnahme von HRESULT: 0x80004004 (E_ABORT))

    Wie gesagt, das gleiche Programm, welches manuell aufgerufen auf dem selben PC ohne Probleme funktioniert?

    Für eure Hilfe Dank im voraus!

    Montag, 11. Januar 2016 10:25

Antworten

  • OK, Du nutzt also Outlook.

    Dann scheitert es eventuell daran, dass Outlook eine Warnung zeigt, wenn man automatisiert Mails verschickt. Im Task kann es die Warnung nicht zeigen und bringt dann einen Fehler.

    Für den Betrieb wäre es deutlich einfacher, wenn Du die .NET_Framework-Klasse nehmen würdest. Die ist unabhängig von Outlook und es braucht nur wenig Vorbereitungen einmalig in Exchange.

    Und sollte man bei Euch mal Exchange abschaffen, musst Du nur den Server ändern.

    https://msdn.microsoft.com/de-de/library/system.net.mail.smtpclient%28v=vs.110%29.aspx

    Beispiele:

    http://weblogs.asp.net/scottgu/432854

    http://www.codeguru.com/columns/dotnet/sending-email-using-.net.html

    http://vb.net-informations.com/communications/vb.net_smtp_mail.htm


    Gruesse aus Berlin schickt Robert - MVP Exchange Server

    Montag, 11. Januar 2016 12:04

Alle Antworten

  • Moin,

    wie genau sendet denn die Applikation. Da gibt es mehrere Varianten, per .NET Klasse, per PowerShell (ist am Ende die gleiche Klasse), per Outlook, manuell direkt mit SMTP, usw.

    Spontan würde ich vermuten, dass der Benutzer, der das Script im Taskplaner ausführt, keine passenden Berechtigungen hat. Hier könnte man zum Beispiel einen eigenen User anlegen ("Name_der_Datenbank"), dem ein Postfach geben und dann darf der problemlos mit Authentifikation (!) und seiner Mail-Adresse bei Exchange einliefern.


    Gruesse aus Berlin schickt Robert - MVP Exchange Server

    Montag, 11. Januar 2016 11:04
  • Angemeldet ist im Moment der Administrator

    über dessen Konto das ganze auch läuft.

    Unten steht ein Teil des Codes

    beim manuellen Aufruf läuft er durch, d.h. im Protokoll steht stop1 und stop2

    beim Start mit  Task steht stop1, und dann eben der Fehler

    -----------------------------------------------------------

    DimprogOutlook AsObject

    DimnewMail AsObject

    ConstcMailItem = 0

    progOutlook = CreateObject("Outlook.Application")

     newMail = progOutlook.createitem(cMailItem)

     newMail.subject = "Erinnerung an Geburtstage von Mitarbeitern"

     newMail.To = adresseAlleUser

    newMail.body = Meldung

    Protokoll("Stop1")

    newMail.send

    Protokoll("Stop2")

    ---------------------------------------------

              

            

             

               


               


              

    Montag, 11. Januar 2016 11:27
  • OK, Du nutzt also Outlook.

    Dann scheitert es eventuell daran, dass Outlook eine Warnung zeigt, wenn man automatisiert Mails verschickt. Im Task kann es die Warnung nicht zeigen und bringt dann einen Fehler.

    Für den Betrieb wäre es deutlich einfacher, wenn Du die .NET_Framework-Klasse nehmen würdest. Die ist unabhängig von Outlook und es braucht nur wenig Vorbereitungen einmalig in Exchange.

    Und sollte man bei Euch mal Exchange abschaffen, musst Du nur den Server ändern.

    https://msdn.microsoft.com/de-de/library/system.net.mail.smtpclient%28v=vs.110%29.aspx

    Beispiele:

    http://weblogs.asp.net/scottgu/432854

    http://www.codeguru.com/columns/dotnet/sending-email-using-.net.html

    http://vb.net-informations.com/communications/vb.net_smtp_mail.htm


    Gruesse aus Berlin schickt Robert - MVP Exchange Server

    Montag, 11. Januar 2016 12:04