阿里云主机用QQ邮箱发送邮件

由于阿里云禁用了25端口,所以替换成587端口并修改协议为ssl才能发送邮件。

如何获取QQ邮箱授权码?:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

        /// <summary>
        /// 发送QQ邮件
        /// </summary>
        /// <param name="sender">发件人</param>
        /// <param name="senderEmail">发件人QQ邮箱</param>
        /// <param name="serviceNum">发件人QQ邮箱服务码</param>
        /// <param name="receiver">接收邮箱</param>
        /// <param name="title">邮件主题</param>
        /// <param name="body">邮件内容</param>
        /// <param name="attachments">邮件附件</param>
        /// <returns></returns>
        public static string QQEmailSend(string sender, string senderEmail, string serviceNum, string receiver, string title, string body, string[] attachments = null)
        {
            string result;
            var mail = new MailMessage();
            var client = new SmtpClient();
            try
            {
                mail.From = new MailAddress(sender + " " + "<" + senderEmail + ">");
                mail.To.Add(new MailAddress(receiver));
                mail.BodyEncoding = Encoding.UTF8;
                mail.IsBodyHtml = true;
                mail.SubjectEncoding = Encoding.UTF8;
                mail.Priority = MailPriority.Normal;
                mail.Body = body;
                mail.Subject = title;

                //添加附件
                if (attachments != null && attachments.Length > 0)
                {
                    foreach (var path in attachments)
                    {
                        if (File.Exists(path))
                        {
                            var attachFile = new Attachment(path);
                            mail.Attachments.Add(attachFile);
                        }
                    }
                }
                client.Host = "smtp.qq.com";
                client.Port = 587; //端口
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.EnableSsl = true;
                client.UseDefaultCredentials = false;
                client.Credentials = new NetworkCredential(senderEmail, serviceNum);
                client.Send(mail);
                result = "true";
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }
            return result;
        }
    }
 client.Port = 587; //端口
 client.EnableSsl = true;
 client.UseDefaultCredentials = false;
 client.Credentials = new NetworkCredential(senderEmail, serviceNum);


猜你喜欢

转载自blog.csdn.net/a497785609/article/details/78842229
今日推荐