Asp.net 已验证邮件发送在.NET中不起作用
我有一个从.net应用程序发送邮件的脚本 如果我不想延迟接收邮件,我的主机提供商要求对邮件进行身份验证(目前延迟距离发送时间几乎一天) 我已经构建了带有身份验证的邮件发送脚本,但它不起作用-它不会产生任何错误或异常,但邮件仍然不会立即收到 在另一方面,类似的脚本在经典的asp作品,我收到邮件立即 我错过什么了吗 这是asp脚本(可以正常工作): 以下是我的web.config设置:Asp.net 已验证邮件发送在.NET中不起作用,asp.net,authentication,sendmail,mailsettings,Asp.net,Authentication,Sendmail,Mailsettings,我有一个从.net应用程序发送邮件的脚本 如果我不想延迟接收邮件,我的主机提供商要求对邮件进行身份验证(目前延迟距离发送时间几乎一天) 我已经构建了带有身份验证的邮件发送脚本,但它不起作用-它不会产生任何错误或异常,但邮件仍然不会立即收到 在另一方面,类似的脚本在经典的asp作品,我收到邮件立即 我错过什么了吗 这是asp脚本(可以正常工作): 以下是我的web.config设置: <system.net> <mailSettings> <s
<system.net>
<mailSettings>
<smtp>
<network host="mail.mydomain.com" userName="myusername" password="mypassword" port="25" />
</smtp>
</mailSettings>
</system.net>
web.config设置是正确的,但即使我手动将服务器设置输入到类中,它也不起作用
谢谢试试这个:
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add("test@hotmail.com");
// From
MailAddress mailAddress = new MailAddress("you@hotmail.com");
mailMsg.From = mailAddress;
// Subject and Body
mailMsg.Subject = "subject";
mailMsg.Body = "body";
// Init SmtpClient and send on port 587 in my case. (Usual=port25)
SmtpClient smtpClient = new SmtpClient("mailserver", 587);
System.Net.NetworkCredential credentials =
new System.Net.NetworkCredential("username", "password");
smtpClient.Credentials = credentials;
smtpClient.Send(mailMsg);
事实证明,问题出在托管提供商方面。不确定他们做了什么,但它最终开始工作。尝试处理SmtpClient.SendCompleted事件并查看事件args中的错误您需要在SmtpClient中设置端口,例如587请参阅下面给出的答案。手动设置端口不起作用怎么办?它抛出异常?我看不出你的.net代码有任何错误。您确定已从您的网络配置中正确检索到主机、端口和凭据的值吗?@Dura,是的,这些值是正确的。不管怎样,我说如果使用手动值而不是web.config,事件将不起作用。它不会改变任何东西。电子邮件仍然延迟。
<system.net>
<mailSettings>
<smtp>
<network host="mail.mydomain.com" userName="myusername" password="mypassword" port="25" />
</smtp>
</mailSettings>
</system.net>
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add("test@hotmail.com");
// From
MailAddress mailAddress = new MailAddress("you@hotmail.com");
mailMsg.From = mailAddress;
// Subject and Body
mailMsg.Subject = "subject";
mailMsg.Body = "body";
// Init SmtpClient and send on port 587 in my case. (Usual=port25)
SmtpClient smtpClient = new SmtpClient("mailserver", 587);
System.Net.NetworkCredential credentials =
new System.Net.NetworkCredential("username", "password");
smtpClient.Credentials = credentials;
smtpClient.Send(mailMsg);