我正在为一个网络非常紧密的学校构建一个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和密码是他用来发送和接收邮件的电子邮件用户名和密码。
答案 0 :(得分:3)
我认为他的mailadress的SMTPUsername不是“admin@xyz.com”,它用作mailmessage的发件人。
邮件服务器似乎验证发送邮件的人是否允许代表admin@xyz.com发送邮件,而这显然不是这样。
根据SMTP规范错误5.7.1代表“无法中继”,这是您尝试做的。
答案 1 :(得分:2)
emailClient = new SmtpClient(yourEMAILSERVER);
emailClient.Send(yourMailMessageObject); // in your case "mailObj" that you have defined already
我会避免使用SMTPServer类或设置其Credentials或DeliveryMethod属性。