我的126邮箱邮件发送失败的解决方法

126邮箱邮件发送注意事项 :
一、问题描述:
BS结构程序,2025.07.03邮件发送不正常,检查邮箱也没有发现问题,通过邮箱大师发送邮件正常,但是程序后端发送邮件失败。写C#控制台代码模拟发送邮件正常。同样代码放在后端方法中发送邮件失败!
二、解决方法:
后端邮件发送方法中的client.EnableSsl=true,改为false,端口没设置采用默认值(25),发送邮件正常。
三、发邮件代码:

/// <summary>
       /// 发送邮件方法
       /// </summary>
       /// <param name="FromMial">发件人邮箱</param>
       /// <param name="ToMial">收件人邮箱(多个收件人地址用";"号隔开)</param>
       /// <param name="AuthorizationCode">发件人授权码</param>
       /// <param name="ReplyTo">对方回复邮件时默认的接收地址(不设置也是可以的)</param>
       /// <param name="CCMial">//邮件的抄送者(多个抄送人用";"号隔开)</param>
       /// <param name="File_Path">附件的地址</param>
       public bool SendMail(string FromMial, string ToMial, string AuthorizationCode, string ReplyTo, string CCMial, string File_Path, string Mail_Message_Subject, string Mail_Message_Body)
       {
           try
           {
               //实例化一个发送邮件类。
               MailMessage mailMessage = new MailMessage();

               //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
               mailMessage.Priority = MailPriority.Normal;

               //发件人邮箱地址。
               mailMessage.From = new MailAddress(FromMial);

               //收件人邮箱地址。需要群发就写多个
               //拆分邮箱地址
               List<string> ToMiallist = ToMial.Split(';').ToList();
               for (int i = 0; i < ToMiallist.Count; i++)
               {
                   mailMessage.To.Add(new MailAddress(ToMiallist[i]));  //收件人邮箱地址。
               }

               if (ReplyTo == "" || ReplyTo == null)
               {
                   ReplyTo = FromMial;
               }

               //对方回复邮件时默认的接收地址(不设置也是可以的哟)
               //mailMessage.ReplyTo = new MailAddress(ReplyTo);

               if (CCMial != "" && CCMial != null)
               {
                   List<string> CCMiallist = ToMial.Split(';').ToList();
                   for (int i = 0; i < CCMiallist.Count; i++)
                   {
                       //邮件的抄送者,支持群发
                       mailMessage.CC.Add(new MailAddress(CCMial));
                   }
               }
               //如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。
               mailMessage.SubjectEncoding = Encoding.GetEncoding(936);

               //邮件正文是否是HTML格式
               mailMessage.IsBodyHtml = false;

               //邮件标题。
               mailMessage.Subject = Mail_Message_Subject;
               //邮件内容。
               mailMessage.Body = Mail_Message_Body;

               //设置邮件的附件,将在客户端选择的附件先上传到服务器保存一个,然后加入到mail中  
               if (File_Path != "" && File_Path != null)
               {
                   //将附件添加到邮件
                   mailMessage.Attachments.Add(new Attachment(File_Path));
                   //获取或设置此电子邮件的发送通知。
                   mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
               }

               //实例化一个SmtpClient类。
               SmtpClient client = new SmtpClient();

               #region 设置邮件服务器地址

               //在这里我使用的是163邮箱,所以是smtp.163.com,如果你使用的是qq邮箱,那么就是smtp.qq.com。
              
               if (FromMial.Length != 0)
               {
                   //根据发件人的邮件地址判断发件服务器地址   默认端口一般是25
                   string[] addressor = FromMial.Trim().Split(new Char[] { '@', '.' });
                   switch (addressor[1])
                   {
                       case "163":
                           client.Host = "smtp.163.com";
                           break;
                       case "126":
                           client.Host = "smtp.126.com";
                          
                            break;
                       case "qq":
                           client.Host = "smtp.qq.com";
                           break;
                       case "gmail":
                           client.Host = "smtp.gmail.com";
                           break;
                       case "hotmail":
                           client.Host = "smtp.live.com";//outlook邮箱
                           //client.Port = 587;
                           break;
                       case "foxmail":
                           client.Host = "smtp.foxmail.com";
                           break;
                       case "sina":
                           client.Host = "smtp.sina.com.cn";
                           break;
                       default:
                           client.Host = "smtp.exmail.qq.com";//qq企业邮箱
                           break;
                   }
               }
                #endregion

                //不使用安全加密连接。
                //EnableSsl必须设置为:false
                //Port必须设置为:25(默认)如果不设置,默认就是25
                //这样才可以正常发送邮件
                client.EnableSsl = false;
                
               
               //不和请求一块发送。
               client.UseDefaultCredentials = false;

               //验证发件人身份(发件人的邮箱,邮箱里的生成授权码);
               client.Credentials = new NetworkCredential(FromMial, AuthorizationCode);

               //如果发送失败,SMTP 服务器将发送 失败邮件告诉我  
               mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
               //发送
               client.Send(mailMessage);
               return true;
               //Console.WriteLine("发送成功");
           }
           catch (Exception ex)
           {
                //throw ex;
                return false;
               //Console.WriteLine("发送失败");
           }
       }

秋风写于淄博,技术交流与业务联系:Q375172665

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值