2015-04-20 9 views
0
Send-MailMessage 
-From "[email protected]" 
-To "[email protected]" 
-Subject "Subject" ` 
-SmtpServer "localhost" -Body "Test Message" 

Я отправка электронной почты с помощью Send-MailMessage, в Powershell эквивалент использования System.Net.Mail.MailMessage.Отправить по электронной почте от <> нулевого адреса отправителя

Есть ли способ отправки электронной почты с нулевого адреса отправителя? Если нет, то есть какие-либо альтернативы powershell/.NET, которые я могу использовать.

От этого требуется, поэтому его нельзя опустить. null, "" и т. д. неприемлемы, поскольку Send-MailMessage проверяет, является ли адрес электронной почты.


<> Null sender address: «Адрес отправителя является адрес электронной почты, который будет получать по электронной почте о проблемах доставки (списки рассылки изменить это, но не из: заголовка электронной почты, так что они, а не люди, посылая к ним, получить сообщения о проблемах с доставкой). Специальный адрес нулевого отправителя (MAIL FROM: <>) используется для оповещения о том, что никто не заботится и никаких уведомлений о отказе не следует отправлять. Нулевые отправители используются при отправке сообщений об отказе, а иногда и в другое время. "

+0

Зачем вам отправлять почту от «нулевого» отправителя? –

+0

Мой код посвящен электронной почте. Я могу получить почту с этого адреса, поэтому мне нужно проверить ее. –

+0

Почему бы просто не использовать Send-MailMessage для отправки электронного письма, которое, как вы знаете, будет генерировать NDR? Используйте адрес From:, чтобы направить ответ на ваш скрипт. – mjolinor

ответ

1

Вы не можете сделать это с помощью SmtpClient и MailMessage, поэтому использование этого или Send-MailMessage не может быть и речи. К сожалению, это означает, что вам остается либо найти стороннюю библиотеку, которая ее поддерживает, либо самостоятельно написать код для отправки напрямую через SMTP.

Возможно, вам лучше протестировать эту часть вашей системы с помощью модульного теста.

0

вручную с телнет

open localhost 25 

HELO Foo 
MAIL FROM: <> <--- the null address 

Automated.

На самом деле не полный рабочий код, но должен дать общее впечатление, что GetFile и SmtpStream - это потоки. Решение состоит в том, чтобы подавать предварительно созданный файл .eml, напрямую взаимодействуя с протоколом SMTP.

 GivenAClientIsConnectedToAnAgentInTheWAITINGState(); 

     SmtpStream.WriteAsciiString("MAIL FROM:<>{0}", Environment.NewLine); 
     SmtpStream.ReceiveAsAsciiString(); 

     SmtpStream.WriteAsciiString("RCPT TO:<{0}>{1}",mailboxAddress, Environment.NewLine); 
     SmtpStream.ReceiveAsAsciiString(); 

     SmtpStream.WriteAsciiString("DATA{0}", Environment.NewLine); 
     SmtpStream.ReceiveAsAsciiString(); 
     SmtpStream.SendEmail(_fileRepository.GetFile("NullSenderMessage.eml")); 
     SmtpStream.SendDataTerminator(); 
     SmtpStream.ReceiveAsAsciiString(); 
     SmtpStream.WriteAsciiString("QUIT"); 
Смежные вопросы