天真宥邪 2019-04-01 19:15 采纳率: 50%
浏览 951
已采纳

求助~.Net平台网站发邮件特别慢

本人为学院做了一个挂号信通知系统,用的是.Net平台开发的,服务器是server 2008 r2版本。在自己的电脑上测试没有问题,但是发布到服务器上后就特别慢,等了大概五分钟才发出来,不知道哪里出了问题。
源码如下:
protected void rpt_EnvelopeM(object source, RepeaterCommandEventArgs e)
{

    if (e.CommandName == "Inform")
    {
        string id = e.CommandArgument.ToString();
        string sql = "select MailBox from Envelope where id="+id;
        string Mailto = Readdatabasestring(sql);
        string subjet = "~~";
        string content = "~~";
        SendEmail(Mailto, subjet, content);
        Page.ClientScript.RegisterStartupScript(this.GetType(), "js", "<script>alert('发送成功!')</script>");
    }
}
public static bool SendEmail(string mailTo, string mailSubject, string mailContent)
{
    // 设置发送方的邮件信息,例如使用网易的smtp
    string smtpServer = "smtp.163.com"; //SMTP服务器
    string mailFrom = "xxxx@163.com"; //登陆用户名
    string userPassword = "xxxx";//登陆密码

    // 邮件服务设置
    SmtpClient smtpClient = new SmtpClient();
    smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
    smtpClient.Host = smtpServer; //指定SMTP服务器
    smtpClient.EnableSsl = true;
    smtpClient.UseDefaultCredentials = false;
    smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用户名和密码

    // 发送邮件设置       
    MailMessage mailMessage = new MailMessage(mailFrom, mailTo); // 发送人和收件人
    mailMessage.Subject = mailSubject;//主题
    mailMessage.Body = mailContent;//内容
    mailMessage.BodyEncoding = Encoding.UTF8;//正文编码
    mailMessage.IsBodyHtml = true;//设置为HTML格式
    mailMessage.Priority = MailPriority.Low;//优先级

    try
    {
        smtpClient.Send(mailMessage); // 发送邮件
        return true;
    }
    catch (SmtpException ex)
    {
        return false;
    }
}
  • 写回答

3条回答 默认 最新

  • 天真宥邪 2019-04-04 00:04
    关注

    终于找到问题的答案了!是因为远程证书的原因,我感觉是.Net平台的问题,挂上服务器后会提示证书不可用,但是用Java写的网站就没问题。
    解决办法如下:
    在发送邮件之前添加代码:
    ServicePointManager.ServerCertificateValidationCallback =
    delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };
    强制证书可用就行了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?