У меня есть SMTP-сервер, который принимает только предопределенного отправителя.
Тем не менее, я могу добавить пользовательский заголовок from в структуре DATA, чтобы установить другой адрес отправителя. Это возможно, если я тестирую использование Telnet для составления электронного письма:
>helo there
>mail from:the.only.allowed.sender@mydomain.com
>rcpt to:magnus@mydomain.com
>data
From:magnus@mydomain.com
To:some.user@mydomain.com
Subject:Test
Test message
.
Когда это электронное письмо получено получателю, адрес отправителя является magnus@mydomain.com, что и является целью.
Вот моя проблема.
Как я могу имитировать это "из заголовка" в классе SMTP System.Net.Mail?
Задать свойство from не удастся, поскольку это нарушит политики SMTP-сервера.
Примерно так было бы здорово, но это не сработало:
var fromAddress = new MailAddress("the.only.allowed.sender@mydomain.com");
var toAddress = new MailAddress("user@mydomain.com");
string subject = "Subject";
string body = "Body";
var smtp = new SmtpClient
{
Host = "my-smtp-server",
Port = 25,
DeliveryMethod = SmtpDeliveryMethod.Network
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body,
ReplyTo = new MailAddress("magnus@mydomain.com"),
})
{
message.Headers.Add("From", "magnus@mydomain.com"); // <---- This would be great, if it worked
smtp.Send(message);
}
У кого-нибудь есть идеи?
PS. Я пишу свой собственный класс SMTP, используя сокеты TCP, это работает, но можно ли это сделать в стандартных классах .NET?