Windows Virtual Mail Server를 사용하여 헤더 리턴 패스와 함께 이메일 보내기
-
19-08-2019 - |
문제
.NET MailMessage 클래스를 사용하여 이메일 메시지를 보내려고합니다. 코드는 다음과 같습니다.
MailMessage mm = new MailMessage(
new MailAddress(string.Format("{0}<{1}>", email.FromName, email.FromEmail)),
new MailAddress(emailTo));
mm.Subject = ReplaceValues(email.Subject, nameValues);
mm.ReplyTo = new MailAddress(string.Format("{0}<{1}>", email.FromName, email.FromEmail));
mm.Headers.Add("Return-Path", ReturnEmail);
// Set the email html and plain text
// Removed because it is unneccsary for this example
// Now setup the smtp server
SmtpClient smtp = new SmtpClient();
smtp.Host = SmtpServer;
smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
if (SmtpUsername.Length > 0)
{
System.Net.NetworkCredential theCredential =
new System.Net.NetworkCredential(SmtpUsername, SmtpPassword);
smtp.Credentials = theCredential;
}
smtp.Send(mm);
전송 된 이메일을 확인할 때마다 헤더를 확인하면 항상 반환 경로가없는 것 같습니다. 이것을 올바르게 구성하기 위해 놓친 것이 있습니까? 위에서 말했듯이 개발 시스템 (XP)에서 표준 가상 메일 서버를 사용하고 있지만 결국 Windows 2003에서 실행됩니다.
왜 그것이 오지 않는지 아이디어를 얻었습니까?
해결책
반환 경로는 봉투의 SMTP 메일을 기반으로 설정됩니다. 발신자 속성을 사용하여 그러한 일을 할 수 있습니다.
관련 문제에 대한 또 다른 토론은 조만간 다음과 같습니다. System.net.mail을 사용하여 SMTP 봉투 메일을 어떻게 설정할 수 있습니까?
그리고 btw, smtpdeliveryMethod.pickupdirectoryfromiis를 사용하는 경우 발신자 속성은 메일로 사용되지 않습니다. 이 값을 유지하려면 네트워크를 전달 방법으로 사용해야합니다. 이 문제에 대한 해결 방법을 찾지 못했습니다.
Pickupdirectoryfromiis, Envelope의 발신자 속성 및 SMTP 메일
제휴하지 않습니다 StackOverflow