• 阿里云服务器发送邮件:Connection could not be established with host smtp.qq.com [Connection timed out #110]


    阿里云服务器发送邮件:Connection could not be established with host smtp.qq.com [Connection timed out #110]

    一、总结

    一句话总结:

    端口号port 改成 465,加密方式 encryption 改用 ssl

    二、Connection could not be established with host smtp.163.com

    转自或参考:Connection could not be established with host smtp.163.com 阿星小栈
    https://blog.csdn.net/u010244476/article/details/83190154

     

    laravel阿里云屏蔽25,无法发送邮件的解决方案

    本地测试邮件可以发送成功,但是部署在阿里云服务器上之后,并且在安全组中配置了25端口的出入后还是不行。

    原因是:

    阿里云服务器封禁了25

    解决办法

      端口号port 改成 465

      加密方式 encryption 改用 ssl

    也就是加入了SSL验证

    三、laravel中成功配置实例

    三、阿里云服务器25邮件端口问题

    转自或参考:阿里云服务器25邮件端口问题
    https://blog.csdn.net/weixin_30780649/article/details/101627176


    配置示例:

    spring:
      mail:
        host: smtp.163.com
        username: 1111111@163.com
        password: aaaaaaaa
        default-encoding: UTF-8
        properties:
          mail:
            smtp:
              auth: true
              ssl:
                trust: smtp.163.com
              socketFactory:
                class: 'javax.net.ssl.SSLSocketFactory'
                port: 465
              starttls:
                enable: true
                required: true

    转载于:https://www.cnblogs.com/javabg/p/11398950.html

    四、阿里云服务器邮件发送

    转自或参考:阿里云服务器邮件发送
    https://www.cnblogs.com/eye-like/p/10103783.html

    一个邮件发送的功能,本机调试无问题,但发布到阿里云服务器后邮件发送功能失败。

    网上查了下大概是说阿里云把发送邮件的25端口禁用掉了

    那么解决方式一就是向阿里云申请开放25端口,但具体如何申请,并未深入操作。

    解决方式二:使用邮件服务商的加密端口。

    但是当使用465端口时,先后试验过smtp.mxhichina.com(阿里企业邮箱)、smtp.163.com(163邮箱)、smtp.qq.com(qq邮箱)三种发送方式,均失败!

    再尝试考虑SSL加密SMTP通过587端口进行发件,发送成功。

    以下为配置及源码

    <?xml version="1.0" encoding="utf-8"?>
    <xml>
      <!--收件人邮箱地址-->
      <ConsigneeAddress>pro@163.com</ConsigneeAddress>
      <!--抄送邮箱地址,多个邮箱间用'|'分割-->
      <BccAddress></BccAddress>
      <!--收件人名称-->
      <ConsigneeName>浦泓医疗</ConsigneeName>
      <!--发件人名称-->
      <ConsigneeHand>微商城</ConsigneeHand>
      <!--邮件主题-->
      <ConsigneeTheme>睛彩眼界商城订单</ConsigneeTheme>
      <!--发件邮件服务器的Smtp设置-->
      <SendSetSmtp>smtp.qq.com</SendSetSmtp>
      <!--发件人的邮件-->
      <SendEmail>124@qq.com</SendEmail>
      <!--发件人的邮件密码-->
      <SendPwd>boblunxyluwdjjbh</SendPwd>
      <!--发件端口号-->
      <port>587</port>
      <!--邮件内容-->
      <SendContent>您有新的订单消息</SendContent>
      <!--后台管理地址-->
      <serverAddress>http://xxx/admin/login</serverAddress>
    </xml>
    邮箱配置
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Mail;
    using System.Text;
    using System.Web;
    using System.Xml;
    
    namespace MallServer.Utility
    {
        public class emailhelper
        {
            public static bool MailSend(emailpara para)
            {
                try
                {
                   
                    EmailParameterSet EPSModel = new EmailParameterSet();
                    string filepath = System.Web.HttpContext.Current.Server.MapPath("\Files\email\email.xml");
                    XmlDocument xml = common.xmlHelper.getXML(filepath);
                    string BccAddress = xml.SelectSingleNode("xml").SelectSingleNode("BccAddress").InnerText;//邮件抄送地址
                    string portvalue = xml.SelectSingleNode("xml").SelectSingleNode("port").InnerText; //发送邮件的端口
                    int port = 587;
                    int.TryParse(portvalue, out port);
                    string serverAddress= xml.SelectSingleNode("xml").SelectSingleNode("serverAddress").InnerText;//提示跳转的管理地址
                  
                    EPSModel.ConsigneeAddress = xml.SelectSingleNode("xml").SelectSingleNode("ConsigneeAddress").InnerText;
                    EPSModel.ConsigneeName = xml.SelectSingleNode("xml").SelectSingleNode("ConsigneeName").InnerText;//
                    EPSModel.ConsigneeHand = xml.SelectSingleNode("xml").SelectSingleNode("ConsigneeHand").InnerText;//发件人标题
                    EPSModel.ConsigneeTheme = xml.SelectSingleNode("xml").SelectSingleNode("ConsigneeTheme").InnerText;//收件人的主题
                    EPSModel.SendSetSmtp = xml.SelectSingleNode("xml").SelectSingleNode("SendSetSmtp").InnerText;//发件邮件服务器的Smtp设置
                    EPSModel.SendEmail = xml.SelectSingleNode("xml").SelectSingleNode("SendEmail").InnerText;//发件人的邮件
                    EPSModel.SendPwd = xml.SelectSingleNode("xml").SelectSingleNode("SendPwd").InnerText;
                    EPSModel.SendContent = xml.SelectSingleNode("xml").SelectSingleNode("SendContent").InnerText;
    
                    if (para.ConsigneeTheme != "") {
                        EPSModel.ConsigneeTheme = para.ConsigneeTheme;
                    }
                    if (para.SendContent != "") {
                        EPSModel.SendContent = para.SendContent+"
    查看详细请登陆 "+serverAddress;           
                    }
    
    
                    //确定smtp服务器端的地址,实列化一个客户端smtp 
                    System.Net.Mail.SmtpClient sendSmtpClient = new System.Net.Mail.SmtpClient(EPSModel.SendSetSmtp);//发件人的邮件服务器地址
                    //构造一个发件的人的地址
                    System.Net.Mail.MailAddress sendMailAddress = new MailAddress(EPSModel.SendEmail, EPSModel.ConsigneeHand, Encoding.UTF8);//发件人的邮件地址和收件人的标题、编码
    
                    //构造一个收件的人的地址
                    System.Net.Mail.MailAddress consigneeMailAddress = new MailAddress(EPSModel.ConsigneeAddress, EPSModel.ConsigneeName, Encoding.UTF8);//收件人的邮件地址和收件人的名称 和编码
    
                    //构造一个Email对象
                    System.Net.Mail.MailMessage mailMessage = new MailMessage(sendMailAddress, consigneeMailAddress);//发件地址和收件地址
                    if (BccAddress != "")
                    {
                        string[] addressArr = BccAddress.Split('|');
                        for (int i = 0; i < addressArr.Length; i++)
                        {
                            mailMessage.Bcc.Add(new MailAddress(addressArr[i]));//添加抄送
                        }
                    }
    
                    mailMessage.Subject = EPSModel.ConsigneeTheme;//邮件的主题
                    mailMessage.BodyEncoding = Encoding.UTF8;//编码
                    mailMessage.SubjectEncoding = Encoding.UTF8;//编码
                    mailMessage.Body = EPSModel.SendContent;//发件内容
                    mailMessage.IsBodyHtml = false;//获取或者设置指定邮件正文是否为html
                   
    
                    //设置邮件信息 (指定如何处理待发的电子邮件)
                    sendSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定如何发邮件 是以网络来发
                    sendSmtpClient.EnableSsl = true;//服务器支持安全接连,安全则为true
                    sendSmtpClient.Port = port;
                    sendSmtpClient.UseDefaultCredentials = true;//是否随着请求一起发
    
                    //用户登录信息
                    NetworkCredential myCredential = new NetworkCredential(EPSModel.SendEmail, EPSModel.SendPwd);
                    sendSmtpClient.Credentials = myCredential;//登录
                    
                    sendSmtpClient.Send(mailMessage);//发邮件
                    return true;
                }
                catch (Exception ex)
                {
                    //common.CommonMethod.WriteTxt("ex.message:"+ex.Message);
                    //common.CommonMethod.WriteTxt("ex.Source:" + ex.Source);
                    //common.CommonMethod.WriteTxt("ex.StackTrace:" + ex.StackTrace);
                    return false;
                }
    
            }
        }
    }
    发邮件
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace MallServer.Utility
    {
        public class emailpara
        {
            public string ConsigneeTheme { get; set; }
            public string SendContent { get; set; }
    
        }
    }
    emailpara
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace MallServer.Utility
    {
        public class EmailParameterSet
        {
            /// <summary>
            /// 收件人的邮件地址 
            /// </summary>
            public string ConsigneeAddress { get; set; }
    
            /// <summary>
            /// 收件人的名称
            /// </summary>
            public string ConsigneeName { get; set; }
    
            /// <summary>
            /// 收件人标题
            /// </summary>
            public string ConsigneeHand { get; set; }
    
            /// <summary>
            /// 收件人的主题
            /// </summary>
            public string ConsigneeTheme { get; set; }
    
            /// <summary>
            /// 发件邮件服务器的Smtp设置
            /// </summary>
            public string SendSetSmtp { get; set; }
    
            /// <summary>
            /// 发件人的邮件
            /// </summary>
            public string SendEmail { get; set; }
    
            /// <summary>
            /// 发件人的邮件密码
            /// </summary>
            public string SendPwd { get; set; }
            /// <summary>
            /// 发件内容
            /// </summary>
            public string SendContent { get; set; }
        }
    }
    EmailParameterSet

    说明:

    实例中使用的是qq邮箱,但邮箱的密匙非qq的密码,而是邮箱的独立密码,可以进入qq邮箱,然后在设置-》账户里面设置

    并且要保证邮箱的POP3/SMTP服务开启,同样是进入qq邮箱,然后在设置-》账户里面设置

    引用:

    https://www.cnblogs.com/axinno1/p/8303130.html

  • 相关阅读:
    下载远程url文件(或者文件流)到本地
    在jsp中出现异常后应该停止往下执行的情况,怎么处理?
    用js函数处理事件时,有时候可能因为页面部分组件不需要显示,但仍需要执行js,会有报错,但是不想暴露页面,是业务正常进行。。。。
    Linux shell 逻辑判断符号
    java生成excel并可以导出
    timer定时器
    StringBuffer的使用
    jsp不能使用return时候,如何在出异常时退出,不在向下执行
    java 调用linux脚本例子
    关于File.separator 文件路径:wind与linux下路径问题 .
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11888094.html
Copyright © 2020-2023  润新知