2010 년 (여전히 Net 2.0을 사용하고있었습니다) SmtpClient와 함께 SmtpDeliveryMethod.SpecifiedPickupDirectory를 사용할 때 숨은 참조를받는 사람에게 메일이 보내지지 않는 문제가 발생했습니다.SmtpClient : SmtpDeliveryMethod.SpecifiedPickupDirectory를 사용할 때 숨은 참조가 무시되었습니다.
웹 (link 및 link)를 검색 한 후, 나는 다음 해결했다 :
if (message.Bcc.Count > 0)
{
System.Text.StringBuilder bcc = new System.Text.StringBuilder();
for (int i = 0; i < message.Bcc.Count; i++)
{
bcc.Append(message.Bcc[i].Address);
bcc.Append(";");
}
message.Headers.Add("Bcc", bcc.ToString());
message.Bcc.Clear();
}
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;
smtp.PickupDirectoryLocation = PickupDir;
smtp.Send(message);
이 해결 방법은 숨은 참조받는 사람이 메일 보내기의 헤더에 눈에 보였다 부작용으로했다, 그러나에 우리의 경우 Bcc가 로깅 목적으로 사용 되었기 때문에 이것이 문제가되지 않았습니다.
며칠 전에 우리는 Net 4.0 (최종적으로)으로 전환했고 문제는 재 포장되었습니다. 해결 방법을 제거하려고 시도했지만 도움이되지 않았습니다.
Send 메서드가 차단되어 메일을 보내는 동안 사용자를 대기 상태로 유지하므로 솔루션을 사용할 수 없습니다 (메일 서버로드에 따라 다름). SmtpDeliveryMethod.Network는 솔루션이 아닙니다. 메일 보내기가 실패하거나 프로세스가 충돌 할 때 메일이 손실되므로 메일 비동기를 보내는 것도 옵션이 아닙니다.
나는이 문제에 대해 웹상에서 해결책을 찾지 못했지만 어떤 아이디어가 있습니까?
이 조합이 지원되지 않으면 (Bcc + PickupDirectory) SmtpClient 및/또는 MailMessage의 도움말 페이지에서 언급해야합니다. – Marc