【发布时间】:2015-01-29 08:52:57
【问题描述】:
我有将电子邮件发送到用户在注册时提供的电子邮件 ID 的代码。它可以是我们公司的域 ID,也可以是任何其他域。
现在有 3 个不同的按钮可以调用三个不同的电子邮件页面。休假可以被批准、拒绝或取消。代码是通用的,只有男孩改变,结果通过改变状态字段的值反映在数据库中。
这是我正在使用的代码:
try
{
string fromEmail = ConfigurationManager.AppSettings["EmailID"].ToString();
string toEmail = lbl_emp_email.Text.Trim();
string bcc = Convert.ToString(lbl_logger_mailID.Text);
MailMessage message = new MailMessage(fromEmail, toEmail);
message.CC.Add("abcd@aaaa-india.org");
message.Bcc.Add(new MailAddress(bcc));
//send email to sender,the boss in this case.notify him he has approved a leave request
message.Subject = lbl_subject.Text.Trim();
message.Body = txt_mail_body.Text.Trim();
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.aaaa-india.org";
smtp.Send(message);
Response.Write("<script type=\"text/javascript\">alert('Notification of leave approval sent.');</script>");
}
catch (Exception exce)
{
Response.Write("MAIL NOT SENT. AN ERROR OCCURRED." + exce.ToString());
}
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="support@aaaa-india.org" >
<network defaultCredentials="false"
enableSsl="true"
host="smtp.aaaa-india.org"
port="587"
userName="support@aaaa-india.org"
password="abcd"/>
</smtp>
</mailSettings>
</system.net>
<appSettings>
<add key="EmailID" value="support@aaaa-india.org"/></appSettings>
根据我使用的端口号,我得到 3 个不同的错误。 由于我使用了上面的 587 端口,我收到以下错误:
MAIL NOT SENT. AN ERROR OCCURRED.
System.Security.Authentication.AuthenticationException:
The remote certificate is invalid according to the validation procedure. at
System.Net.Security.SslState.StartSendAuthResetSignal
(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)at
System.Net.Security.SslState.CheckCompletionBeforeNextReceive
(ProtocolToken message, AsyncProtocolRequest asyncRequest) at
System.Net.Security.SslState.StartSendBlob
(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at
System.Net.Security.SslState.ProcessReceivedBlob
(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at
System.Net.Security.SslState.StartReadFrame
(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at
System.Net.Security.SslState.StartReceiveBlob
(Byte[] buffer, AsyncProtocolRequest asyncRequest)
当我将端口号更改为 465 时,错误是:
AN ERROR OCCURRED. System.Net.Mail.SmtpException: The operation has timed out. at
System.Net.Mail.SmtpClient.Send(MailMessage message)
at the line smtp.Send(message);
当我使用 25 端口时,错误再次出现:
MAIL NOT SENT. AN ERROR OCCURRED.
System.Security.Authentication.AuthenticationException:
The remote certificate is invalid according to the validation procedure. at
System.Net.Security.SslState.StartSendAuthResetSignal
(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) at
System.Net.Security.SslState.CheckCompletionBeforeNextReceive
(ProtocolToken message, AsyncProtocolRequest asyncRequest) at
System.Net.Security.SslState.StartSendBlob
(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
我已尝试在指定端口上打开与邮件服务器的 telnet 连接。它有效。 我什至检查了允许程序通过防火墙中的 HTTP 服务选项。
我还检查了防火墙是否阻止了任何内容,但事实并非如此。我手动启用了防火墙以允许所有与电子邮件相关的端口。我与管理员核实了任何阻止权限,但没有任何限制不允许我发送电子邮件。 作为最后的手段,我在我的计算机上安装了我公司的邮件客户端,并尝试在各种端口上使用 smtp。
一切正常。本网站除外。 请帮忙。
【问题讨论】:
-
SMTP 服务器是否支持 SMTP over SSL?
-
我刚问过我的管理员,是的。我对此完全不知所措。