我在通过代码发送邮件时遇到了问题。实际上代码运行正常,没有错误,但是邮件没有到达我发送的用户。我正在粘贴下面的代码。请检查并告诉我问题。
System.Net.Mail.MailMessage msgMail = new System.Net.Mail.MailMessage();
msgMail.From = new System.Net.Mail.MailAddress("veerab@orbees.com");
msgMail.To.Add(new System.Net.Mail.MailAddress("abhi.orbees@gmail.com"));
string currentuseremail = web.CurrentUser.Email.ToString();
msgMail.Subject = "Request:Joing into the myitem.Title.ToString()";
msgMail.IsBodyHtml = true;
string strBody = "test mail";
msgMail.Body = strBody;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Send(msgMail);
我将web.config配置为:
<system.net>
<mailSettings>
<smtp deliveryMethod="PickupDirectoryFromIis">
<network host="smtpout.secureserver.net" port="25" defaultCredentials="true"/>
</smtp>
</mailSettings>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true"/>
</settings>
</system.net>
答案 0 :(得分:1)
我认为您的案例中的问题可能与web.config中的deliveryMethod属性有关;您可能需要与主机进行验证,但该方法将静默地转发Web服务器上的电子邮件文件,期望邮件传输代理提取文件并在以后发送。可能根本没有使用网络元素,因为我认为你有PickupDirectoryFromIis值。
答案 1 :(得分:1)
首先设置本地目录以接收邮件。在您进一步排除故障之前,这将排除任何代码问题:
How to test asp.net email is being sent
<mailSettings>
<smtp deliveryMethod='SpecifiedPickupDirectory'>
<specifiedPickupDirectory pickupDirectoryLocation="c:\maildrop" />
</smtp>
</mailSettings>
<mailSettings>
<smtp from="me@mysite.com">
<network host="xx.xx.xxx.xx" port="25" defaultCredentials="true"/>
</smtp>
</mailSettings>
答案 2 :(得分:0)
您的投放方式当然应该是网络吗?
http://msdn.microsoft.com/en-us/library/system.net.mail.smtpdeliverymethod.aspx
否则,您需要在本地计算机上安装IIS / SMTP才能发送邮件,IIRC。
答案 3 :(得分:0)
检查您的本地SMTP服务器是否正在运行。由于您的DeliveryMethod
是PickupDirectoryFromIis,邮件将被写入本地提货目录,由SMTP服务器(IIS的一部分)发送。
答案 4 :(得分:0)
我认为运行IIS的计算机上的SMTP配置不正确或者根本没有运行。您可以在其中一个Inetpub子文件夹中看到您发送的电子邮件。
我们设置了PickupDirectoryFromIis,这意味着本地SMTP服务器将启动这些服务器并将中继发送到另一个SMTP。