Windows Virtual Mail Server를 사용하여 헤더 리턴 패스와 함께 이메일 보내기

StackOverflow https://stackoverflow.com/questions/464876

문제

.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 메일

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top