У меня есть SMTP-сервер, который принимает только предопределенный От отправителя.
Однако я могу добавить пользовательский заголовок в структуре DATA, чтобы установить другой адрес (отправителя). Это возможно, если я проверить с помощью Telnet, чтобы составить сообщение по электронной почте:Как добавить пользовательские заголовки в класс SMTP System.Net.Mail?
>helo there
>mail from:[email protected]
>rcpt to:[email protected]
>data
From:[email protected]
To:[email protected]
Subject:Test
Test message
.
Когда это письмо прибывшие на получателе, от адреса [email protected], который является целью.
Вот моя проблема.
Как я могу подражать этому «из заголовка» в классе SMTP System.Net.Mail? Невозможно установить свойство from из свойства, поскольку это нарушит политики сервера SMTP. Нечто подобное было бы здорово, но это не работает:
var fromAddress = new MailAddress("the.onl[email protected]");
var toAddress = new MailAddress("[email protected]");
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("[email protected]"),
})
{
message.Headers.Add("From", "[email protected]"); // <---- This would be great, if it worked
smtp.Send(message);
}
Кто-нибудь есть какие-нибудь идеи?
PS. Написав собственный SMTP-класс, используя TCP-сокеты, он работает, но это можно сделать в стандартных классах .NET?
Это не может работать «сообщение» выходит за рамки, когда smtp.Send называется. синтаксис полностью неверен, и ответ не показывает решение – GregJF
@GregJF, добро пожаловать в Stackoverflow. Если вы считаете, что есть способ улучшить ответ, вы можете предложить отредактировать его. –
Magnus, спасибо, что приветствовал меня в Stackoverflow: я был участником более 6 лет. Я предложил способ улучшить ваш ответ: исправьте свой синтаксис !! Речь идет о заголовках, но вы не упоминаете их в своем ответе. В синтаксисе попробуйте использовать блокнот для проверки кода перед публикацией. например LINQPad – GregJF