【问题标题】:System.Net.Mail Server Response was 5.7.1System.Net.Mail 服务器响应为 5.7.1
【发布时间】:2011-08-25 18:27:11
【问题描述】:

我正在为一所网络非常紧密的学校构建一个 Windows 窗体应用程序(这意味着我为其构建它的人必须要求他们的 IT 服务来做所有事情)。

此应用程序发送电子邮件,我正在使用 System.Net.Mail 库来执行此操作。

        SMTPServer = new SmtpClient("SMTPAddress");

        MailMessage mailObj = new MailMessage("admin@xyz.com", emailAddressTo);

        mailObj.IsBodyHtml = true;
        mailObj.Subject = "Subject";
        mailObj.Body = "<h2>Test E-Mail Message from the TSENS</h2>";

        SMTPServer.Credentials = new System.Net.NetworkCredential(SMTPUserName, SMTPPassword);
        SMTPServer.DeliveryMethod = SmtpDeliveryMethod.Network;  //This is new code

        SMTPServer.Send(mailObj);

我想知道这行:SMTPServer.DeliveryMethod = SmtpDeliveryMethod.Network; 是否会解决他在尝试发送电子邮件时收到的最新错误消息:

我还有什么遗漏的吗?

如果您想知道 SMTPUserName 和 Password 是他用来发送和接收邮件的电子邮件用户名和密码。

【问题讨论】:

    标签: c# .net system.net.mail


    【解决方案1】:

    我认为他的邮件地址的 SMTPUsername 不是用作邮件发件人的“admin@xyz.com”。

    邮件服务器似乎验证了是否允许发送邮件的人代表 admin@xyz.com 发送邮件,但显然情况并非如此。

    根据 SMTP 规范,错误 5.7.1 代表“无法中继”,这是您尝试执行的操作。

    【讨论】:

    • 所以我应该将 admin@xyz.com 更改为他的电子邮件地址?
    • 是 ---(需要额外的文字才能添加评论:))
    • 好的 - 我要试试这个(我做了改变)。现在他只需要安装并运行它。你的回答很有道理。希望它会奏效。成功发送电子邮件后,我会立即将其标记为已回答。谢谢!
    【解决方案2】:
            emailClient = new SmtpClient(yourEMAILSERVER);
            emailClient.Send(yourMailMessageObject); // in your case "mailObj" that you have defined already
    

    我会避免使用 SMTPServer 类或设置其 Credentials 或 DeliveryMethod 属性。

    【讨论】:

    • 我更新了我的问题以反映我的 OP 中缺少的项目
    • 知道了。我想如果 MailMessage 对象中的 FROM 用户名设置为现有用户名,它应该可以工作。
    猜你喜欢
    • 2015-10-14
    • 2015-03-06
    • 2017-10-14
    • 1970-01-01
    • 2017-11-24
    • 2012-04-05
    • 2012-07-15
    • 2013-03-21
    相关资源
    最近更新 更多