0

我正在为一所网络非常紧密的学校构建一个 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;会解决他在尝试发送电子邮件时收到的最新错误消息:

错误 5.7.1

还有什么我想念的吗?

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

4

2 回答 2

3

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

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

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

于 2011-08-25T18:40:28.657 回答
2
        emailClient = new SmtpClient(yourEMAILSERVER);
        emailClient.Send(yourMailMessageObject); // in your case "mailObj" that you have defined already

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

于 2011-08-25T18:53:26.200 回答