2012-04-11 10 views
3

Ist es möglich, eine .eml-Datei von SQL Server dbmail zu generieren? Ich verwende SQL Server 2008 R2.Erstellen/Generieren einer '.eml' Datei von SQL Server dbmail

Ich habe eine Anforderung zum Erstellen einer "E-Mail-Sandbox", in der E-Mails bereitgestellt werden, bevor sie an unseren SMTP-Server zur Zustellung zugestellt werden. Dies ermöglicht es, generierte (und hoffentlich auch dbmail) E-Mails vor der endgültigen Lieferung anzusehen und zu genehmigen. Ich kann dies in .NET erreichen, indem ich eine 'pickupDirectoryLocation' Eigenschaft für ein SmtpClient Objekt festlege.

Fragen: Gibt es eine Möglichkeit, dies auch mit SQL Server generierten E-Mails zu tun?

Danke

Antwort

1

nette Frage! Dachte nie daran.

Nun, wenn Sie den send_dbmail proc aufrufen, senden Sie die E-Mail nicht wirklich. Sie fügen nur einen Datensatz in eine Warteschlange ein, die vom Datenbank-E-Mail-Prozess (DatabaseMail.exe) gelesen wird, der die E-Mail sendet.

Sie wissen nicht, ob das, was Sie wollen, erreicht werden, aber ich kann einige Dinge denken:

  1. Sie sysmail_configure_sp mit Parameter AccountRetryDelay oder DatabaseMailExeMinimumLifeTime verwenden können (nicht sicher, versuchte mich nie) zu verzögern die Zeit, in der der Prozess ausgeführt wird, damit die Manager Zeit haben, die E-Mail zu genehmigen (oder zu bestimmten Zeiten den Auftrag zu deaktivieren). In dieser Zeit können Sie auf die Tabelle zugreifen, die die Nachrichten enthält, und sie bearbeiten. Aber das würde Ihr Problem und seine eher hässliche Lösung nicht vollständig lösen. Mehr Infos here

  2. eine Zwischentabelle erstellen, in dem Sie Ihre Nachrichten gibt und nach der Genehmigung einzufügen, rufen Sie die send_dbmail Prozedur

+0

Dank Diego, Option 2 Möglichkeiten bietet. Ich denke an eine Lösung, die: 1. \t Erstellen Sie Zwischentabelle wie Sie vorschlagen. 2. \t Erstellen Sie einen Prozess, der diese Tabelle nach einem Zeitplan durchsucht und die EML-Datei manuell erstellt. 3. Dieser Artikel enthält auch das Erweitern der MailMessage-Klasse, um eine Speicherfunktion hinzuzufügen (http://www.codeproject.com/Articles/32434/Adding-Save-functionality-to-Microsoft-Net-Mail-Ma) 4. \t Dadurch kann ich mit dem, was wir erstellen, die Mail-Genehmigung für .NET SMTP und SQL Server umgehen. Danke nochmal für den Sack in die richtige Richtung; 0) –