2014-06-17 8 views
7

Ich habe einen Server implementiert, der E-Mails über .Net SmtpClient sendet. das Postsendungs-Code sieht wie folgt aus:Warum von smtpclient gesendete E-Mails nicht in gesendeten Nachrichten angezeigt werden

private static MailMessage SendMail(string to, string subject, string body) 
{ 
MailMessage mailToSend = new MailMessage(); 
mailToSend.Body = body; 
mailToSend.Subject = subject; 
mailToSend.IsBodyHtml = true; 
mailToSend.To.Add(to); 
try 
{ 
    mailClient.Send(mailToSend); 
} 
catch (Exception ex) 
{ 
    //Log data... 
} 
mailToSend.Dispose(); 
} 

und in Web.config habe ich die Anmeldeinformationen des Mail setzen, someting wie folgt aus:

<configuration> 
    <system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
     <network host="smtp.mailserver.org" password="pswdpswd" port="25" userName="autoemail" clientDomain="the-domain" enableSsl="true" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 
</configuration> 

Die E-Mails successfuly und alles funktioniert geschickt, aber wenn Ich melde mich beim E-Mail-Benutzer im Exchange-Server an (im Beispiel über die Outlook-Web-App). Ich kann die über SmtpClient (per Code) gesendeten E-Mails im Ordner "Gesendete Objekte" nicht sehen.

Wie kann ich eine Kopie der gesendeten Mails in diesen Ordnern behalten? Danke!

+1

Sie konnte BCC die E-Mail an sich selbst, wenn Sie eine Kopie der E-Mail haben wollen. – Max

Antwort

13

Sie werden nicht in den gesendeten Elementen aufgezeichnet, da sie nur mit dem Konto des Benutzers auf SMTP-Ebene gesendet werden. Das Postfach wird nicht zum Senden der E-Mail verwendet.

Die einzige Option, die Sie haben, ist nicht SmtpClient zu verwenden und die Exchange API verwenden, um E-Mail zu senden.

Aus ihrer Probe verwiesen:

ExchangeService service = new ExchangeService(); 
service.AutodiscoverUrl("[email protected]"); 

EmailMessage message = new EmailMessage(service); 
message.Subject = subjectTextbox.Text; 
message.Body = bodyTextbox.Text; 
message.ToRecipients.Add(recipientTextbox.Text); 
message.Save(); 

message.SendAndSaveCopy(); 
+1

Danke! gee das war schnell :) – yossico

+1

Hinweis: Sie müssen das Profil auf '.NET Framework 4' ändern. Das "... Kundenprofil" ist nicht ausreichend. Dann müssen Sie einen Verweis auf "Microsoft.Exchange.WebServices" hinzufügen und "mithilfe von Microsoft.Exchange.WebServices" hinzufügen –

Verwandte Themen