【问题标题】:Send email from the <> null sender address从 <> 空发件人地址发送电子邮件
【发布时间】:2015-06-27 01:47:56
【问题描述】:
Send-MailMessage
 -From "from@example.com"
 -To "to@example.com"
 -Subject "Subject" `
 -SmtpServer "localhost" -Body "Test Message"

我正在使用Send-MailMessage 发送电子邮件,它相当于使用 System.Net.Mail.MailMessage 的 powershell。

有没有办法从空发件人地址发送电子邮件?如果没有,我可以使用任何 powershell/.NET 替代品。

From 是必需的,因此不能省略。 null、"" 等是不可接受的,因为 Send-MailMessage 验证发件人是电子邮件地址。


<> Null sender address: “发件人地址是接收有关交付问题的电子邮件的电子邮件地址(邮件列表会更改此内容,但不会更改 From: 电子邮件标题,以便他们而不是发送给他们的人获得有关传递问题的消息)。一个特殊的空发件人地址 (MAIL FROM:) 用于表示没有人关心并且不应发送退回通知。空发件人在自己发送退回邮件时使用,有时在其他时候使用。 "

【问题讨论】:

  • 为什么要发送来自“空”发件人的邮件?
  • 我的代码处理电子邮件。我可以从这个地址收到邮件,所以我需要能够测试它。
  • 为什么不直接使用 Send-MailMessage 发送一封您知道会生成 NDR 的电子邮件?使用 From: 地址将退回邮件路由到您的脚本。
  • @mjolinor 有趣的想法。测试可能有点脆弱,但我会检查一下。

标签: c# .net powershell smtp


【解决方案1】:

您无法使用 SmtpClient 和 MailMessage 执行此操作,因此使用此或 Send-MailMessage 是不可能的。不幸的是,这意味着您要么找到支持它的第三方库,要么自己编写代码以直接通过 SMTP 发送。

您最好使用单元测试来测试系统的这一部分。

【讨论】:

    【解决方案2】:

    手动远程登录

    open localhost 25
    
    HELO Foo
    MAIL FROM: <>   <--- the null address
    

    自动化。

    实际上并不是完整的工作代码,但应该给人的一般印象是 GetFile 和 SmtpStream 是流。解决方案是通过直接与 SMTP 协议交互来提供预先创建的 .eml 文件。

            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");
    

    【讨论】:

      猜你喜欢
      • 2016-01-21
      • 1970-01-01
      • 2012-06-24
      • 2011-07-01
      • 1970-01-01
      • 2014-09-22
      • 2018-07-02
      • 2017-07-21
      • 2012-05-25
      相关资源
      最近更新 更多