如图1~2是本地代码:
图(1)
图(2)
如图(3)是服务器中代码:
图(3)
server 跟smtp server 之間是通的嗎
服务器和smtp server服务器需要怎么连通啊,不理解。
@得意洋洋~:
程式所在的服務器要送請求到smtp server
確認兩主機之間是通的,沒有被防火牆之類的阻擋
在服务器上ping一下smtp.163.com,看看通不通。
邮件发送一般用的是25端口,这个端口在云服务器上默认是被禁用的,即便的安全组规则开放了也无济于事。我之前就是这样,本地可以服务器死活不行。
你可以使用阿里云邮件推送服务( https://dm.console.aliyun.com/ ),发送时将 smtp 的端口号改为 80。当然你也可以找云服务器厂商提工单要求开放这个端口,具体看你什么用途以及别人开不开放了。
https://q.cnblogs.com/q/109217/
这是我18年的问题以及最后得出的解决方案。
你说到点子上了,你最后怎么处理好的。
@得意洋洋~: 后来用的阿里云邮,端口80;如果不想用阿里云邮,可以试试其他邮箱的别的端口。
后面我改其他邮箱&&端口就ok了(服务器阿里云的 windows server 2012R2)
/// <summary>
/// 通过System.Web.Mail.MailMessage去发送,可以不被阿里云限制25端口的使用
/// 暂时一般都用465端口
/// </summary>
/// <param name="smtpserver">SMTP服务,譬如:smtp.126.com</param>
/// <param name="userName">发件箱</param>
/// <param name="pwd">密码</param>
/// <param name="nickName">昵称</param>
/// <param name="strfrom">发件箱</param>
/// <param name="strto">收件箱</param>
/// <param name="MessageSubject">主题</param>
/// <param name="MessageBody">内容</param>
/// <param name="SUpFile">附件</param>
/// <param name="port">端口</param>
/// <param name="enablessl">SSL加密</param>
/// <returns></returns>
public static void SendWebEmail()
{
System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
mail.To = "";
mail.From = "";
mail.Subject = "测试邮箱";
mail.BodyFormat = System.Web.Mail.MailFormat.Html;
mail.Body = "这是一个是测试的内容!";
//构造添加附件(可以发多个附件给多个收件人)
System.Web.Mail.MailAttachment mailAttach_1 = new System.Web.Mail.MailAttachment(@"C:\JXHX\robot.txt");
mail.Attachments.Add(mailAttach_1);
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //身份验证
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", mail.From); //邮箱登录账号
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "DSXJURQCRURDXKYC"); //登录密码
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);//端口
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");//SSL加密
System.Web.Mail.SmtpMail.SmtpServer = "smtp.163.com"; //企业账号用smtp.exmail.qq.com
System.Web.Mail.SmtpMail.Send(mail);
Console.WriteLine("邮件发送完成!!");
}
楼主这个问题解决了么?是怎么样解决的呢?
用465端口
– 无言灬亦知心 4年前