c# 发送邮箱方法整理,25端口和465端口

之前项目需要,做了一个发送邮箱的需求,做一下记录:

开始的时候写了一个使用25端口发送邮件的方法,在本地测试了没有问题,发布到阿里云服务器上就不行了,原来是阿里云禁用了25端口,只能换用465端口来发送邮件,两种方法都写在下面了

1、首先是使用25端口的方法,此方法要引用 System.Net.Mail 

        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="mailHost">邮件服务器</param>
        /// <param name="mailPort">端口</param>
        /// <param name="mailName">发送邮件的用户名</param>
        /// <param name="mailPassword">发送邮件的密码</param>
        /// <param name="tomail">收件人邮箱地址</param>
        /// <param name="file">附件地址</param>
        /// <param name="subject">邮件主题</param>
        /// <param name="body">内容</param>
        public static void Sendmail(string mailHost,int mailPort,string mailName,string mailPassword,string tomail,List<string> file=null,string subject="",string body="")
        {
            var smtpClient = new SmtpClient();
            var mailMessage = new MailMessage();
            smtpClient.EnableSsl = true;
            smtpClient.Host = mailHost;
            smtpClient.Port = mailPort;
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Credentials = new System.Net.NetworkCredential(mailName, mailPassword);
            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            mailMessage.BodyEncoding = Encoding.UTF8;
            mailMessage.IsBodyHtml = true;
            mailMessage.Priority = MailPriority.High;
            mailMessage.From = new MailAddress(mailName);
            mailMessage.To.Add(tomail);
            mailMessage.Subject = subject;
            mailMessage.Attachments.Clear();
            //添加邮件附件,可发送多个文件
            if (file != null && file.Count() > 0)
            {
                foreach (var filename in file)
                {
                    mailMessage.Attachments.Add(new Attachment(filename, MediaTypeNames.Application.Octet));
                }
            }
            mailMessage.Body = body;
            try
            {
                smtpClient.Send(mailMessage);
            }
            catch (SmtpException ex)
            {
                throw new Exception("邮箱异常!" + ex.Message);
            }
        }

2、其次是使用465端口发送邮件,此方法需要引用 System.Web.Mail (此类一些方法已经过时,但是不影响使用)

        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="mailHost">邮件服务器</param>
        /// <param name="mailPort">端口</param>
        /// <param name="mailName">发送邮件的用户名</param>
        /// <param name="mailPassword">发送邮件的密码</param>
        /// <param name="tomail">收件人邮箱地址</param>
        /// <param name="file">附件地址</param>
        /// <param name="subject">邮件主题</param>
        /// <param name="body">内容</param>
        public static void Sendmail(string mailHost,int mailPort,string mailName,string mailPassword,string tomail,List<string> file=null,string subject="",string body="")
        {
            try
            {
                System.Web.Mail.MailMessage mmsg = new System.Web.Mail.MailMessage();
                //验证  
                mmsg.Subject = subject;// "zhuti1";//邮件主题

                mmsg.BodyFormat = System.Web.Mail.MailFormat.Html;
                mmsg.Body = body;// "wqerwerwerwer";//邮件正文
                mmsg.BodyEncoding = Encoding.UTF8;//正文编码
                mmsg.Priority = System.Web.Mail.MailPriority.High;//优先级

                //添加邮件附件,可发送多个文件
                if (file != null && file.Count() > 0)
                {
                    foreach (var filename in file)
                    {
                        System.Web.Mail.MailAttachment mailAttach_1 = new System.Web.Mail.MailAttachment(filename);
                        mmsg.Attachments.Add(mailAttach_1);
                    }
                }
                mmsg.From = mailName;//发件者邮箱地址
                mmsg.To = tomail;//收件人收箱地址
                mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
                //登陆名  
                mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", mailName);
                //登陆密码  
                mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", mailPassword);
                mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);//端口 
                mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
                System.Web.Mail.SmtpMail.SmtpServer = mailHost;
                System.Web.Mail.SmtpMail.Send(mmsg);
            }
            catch (Exception ex)
            {
                throw new Exception("邮箱异常!" + ex.Message);
            }

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuanlongWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值