2016-12-27 3 views
0

Ich erstelle eine E-Mail über meine MVC-Anwendung, jedoch erhalte ich unterschiedliche Ergebnisse zwischen meiner Entwicklungsumgebung und der Test-/Produktionsumgebung. Ich habe versucht, mit AutodiscoverUrl() und SmtpClient() zu implementieren. Wir verwenden einen lokalen IIS-Server für die Entwicklung auf meinem Computer und für den Test/die Produktion auf dem Server.Erstellen einer E-Mail mit AutodiscoverURL oder SmtpClient

Mit der SmtpClient.

  • in Entwicklung

    • auf E-Mails mit Adressen innerhalb unserer Domäne zu senden, wie beabsichtigt arbeiten, erhalten eine Benachrichtigung der Lieferung

    • auf E-Mails wie @ gmail.com und @outlook senden. com der Absender von ist korrekt, aber @ Gmail geht direkt in den Spam-Ordner und @outlokk geht auf die in-Box, manchmal erhalten Benachrichtigung oder Lieferung abgeschlossen

  • in Test/deployment
    • auf E-Mails mit Adressen innerhalb unserer Domain zu senden arbeiten, wie beabsichtigt, keine Benachrichtigung der Lieferung
    • auf E-Mails, wie das Senden @ gmail.com und @ outlook.com von dem gesendeten richtig, aber es geht direkt in den Spam-Ordner, keine Benachrichtigung oder Lieferung vollständig

mit AutodiscoverUrl()

  • in Entwicklung
    • auf E-Mails mit Adressen innerhalb unserer Domain des von aufgeführt wird als per E-Mail im Namen der E-Mail gesendet Sendet ich es aus, die gesendeten E-Mail Ameise sein will Lesebestätigung per E-Mail-Box ist
    • Senden von E-Mail an @ Gmail.com die von gesendet wird korrekt, die gesendete E-Mail ist in meinem Ordner gesendet und es gibt keine Lesebestätigung
    • Senden an @ outlook.com die von ist korrekt, die gesendete E-Mail ist in meinem E-Mail gesendet Ordner, und die Lesebestätigung geht an meine E-Mail-Box mit dem "An" leer in der Quittung (wer die ursprüngliche E-Mail ging)
  • in Test/deployment
    • von dem gesendeten Adresse mit derselben Domain zu E-Mail ist der Eingang keine Lese es richtig aber ist und kein Element in jedem gesendeten Ordner
    • zu @ gmail.com aus dem gesendet wird, korrekt es erscheint jedoch im Spam-Ordner und es dauert ewig, bis es erscheint, keine Lesebestätigung und kein Artikel im gesendeten Ordner
    • zu @outlook.com geschickt die aus richtig ist es aber in gesendeten Ordnern

Der Code, den ich verwendet wird, ist in dem Junk-Mail-Ordner, keine Lesebestätigung und ohne Artikel geliefert -

using (SmtpClient sender = new SmtpClient("mail.state.gov")) 
     { 
      using (MailMessage mailmessage = new MailMessage()) 
      { 
       mailmessage.To.Add(address.Email); 
       mailmessage.From = (new MailAddress("[email protected]")); 
       mailmessage.Subject = subjectline; 
       mailmessage.Body = Body(personID); 
       mailmessage.Priority = MailPriority.Normal; 
       mailmessage.IsBodyHtml = true; 
       mailmessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure | 
    DeliveryNotificationOptions.OnSuccess; 
       mailmessage.Bcc.Add("[email protected]"); 

       sender.Send(mailmessage); 
      } 
     } 

Und dann Ich probierte

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

     EmailMessage message = new EmailMessage(service); 
     message.Subject = subjectline; 
     message.Body = Body(personID); 
     message.ToRecipients.Add(address.Email); 
     message.From = from; 
     message.IsReadReceiptRequested = true; 
     message.Save(); 

     message.SendAndSaveCopy(); 
+0

Haben Sie SPF/DKIM-DNS-Einträge in der Domäne konfiguriert, die in der "Von" -Adresse verwendet wird? Wenn nicht, sind die Spam-Ordner keine Überraschung. –

+0

Wo würden Sie diese Konfigurationen durchführen? –

+0

In der DNS-Zonendatei der Absenderadresse Domain –

Antwort

1

Der Exchange-Ansatz hängt vom aktuell angemeldeten Benutzer ab. Auf Ihrer Workstation wird das immer Sie sein. Auf einem "echten" IIS-Server wird es das Dienstkonto sein, für das die Site konfiguriert ist. Sie haben nicht die vollständige Kontrolle darüber, was in der "Von" -Adresse angezeigt wird, wenn sie empfangen wird, weshalb dieses "im Namen von" Zeug angezeigt wird.

Ich nehme an, dass wenn Sie an Exchange von Exchange senden, auf der gleichen Domäne, dann die Nachrichten nicht immer Ihr Intranet verlassen, so dass sie nicht als Spam angenommen werden. Aber für das Zeug, das SMTP durchläuft, geht es durch die Spam-Filter in Gmail oder Outlook. Sie können die Spamfilter auf diesen Systemen nicht konfigurieren. Offensichtlich löst die E-Mail, die Sie aussenden, die Filter aus. Ändern Sie die E-Mail. Sie können Artikel wie this betrachten, so dass Sie den Inhalt verbessern können, aber erkennen, dass Sie letztlich keine Kontrolle haben.

Verwandte Themen