c# exchange2010 webservice发送邮件方法

//QQ邮箱
/// <summary>
        /// .net Mail发送邮件方法
        /// </summary>
        /// <param name="SendMailAddress">发送邮箱地址</param>
        /// <param name="SendMailPassWord">发送邮箱的密码</param>
        /// <param name="SmtpAddress">Smtp服务名:smtp.163.com</param>
        /// <param name="ToMail">收件人邮箱</param>
        /// <param name="MailTitle">邮箱地址</param>
        /// <param name="MailBody">发送内容</param>
        /// <param name="Ssl">是否启用SSL加密</param>
        /// <param name="DisplaySendMailAddress">收件方显示发件方地址</param>
        /// <returns></returns>
        public bool SendMailMethod(string Subject, string MailBody)
        {
            try
            {
                string from_mail = "XX@qq.com";
                string to_mail = "xxx@xxx.com";
                ServicePointManager.ServerCertificateValidationCallback = delegate (Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };
                SmtpClient smtp = new SmtpClient(); //实例化一个 SmtpClient
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为   Network
                smtp.EnableSsl = true;//smtp服务器是否启用SSL加密
                smtp.Host = "smtp.qq.com"; //指定 smtp 服务器地址
                smtp.Port = 587;    //指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去
                //如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
                smtp.UseDefaultCredentials = false;//如果需要认证,则用下面的方式
                smtp.Credentials = new NetworkCredential(from_mail, "mima?");
                MailMessage mail_content = new MailMessage(); //实例化一个邮件类
                mail_content.Priority = MailPriority.High; //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
                mail_content.From = new MailAddress("xx@qq.com", "", Encoding.GetEncoding(936));//收件方看到的邮件来源;
                mail_content.Sender = new MailAddress(from_mail, "", Encoding.GetEncoding(936));
                mail_content.To.Add(to_mail);//邮件的接收者,支持群发,多个地址之间用 半角逗号 分开//当然也可以用全地址添加              
                mail_content.Subject = Subject; //邮件标题
                mail_content.SubjectEncoding = Encoding.GetEncoding(936);// 这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。
                //936是简体中文的pagecode,如果是英文标题,这句可以忽略不用
                mail_content.IsBodyHtml = true; //邮件正文是否是HTML格式
               // mail_content.BodyEncoding = Encoding.GetEncoding(936);//邮件正文的编码, 设置不正确, 接收者会收到乱码
                mail_content.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
                mail_content.Body = MailBody;//邮件正文             
                smtp.Send(mail_content);
                return true;
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex.Message.ToString(), ex);               
                return false;
            }
        }
//exchange2010 服务器发送邮件方法
//1、微软的Exchange服务都有webservice接口, 验证Exchange服务的webservice是否正常:https://xx.xxxxx.com/ews/exchange.asmx, 能打开就是正常。
//2、通过NuGet安装Microsoft.Exchange.WebServices(本人安装的2.2.0版本)
        public bool SendMailMethod(string Subject, string MailBody)
        {
            try
            {
				//SSL协议
                System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
                //接收人
                string to_mail = "XX@XX.com";
                //抄送人
                string cc_mail = "XX@XX.com";
                ServicePointManager.ServerCertificateValidationCallback = delegate (Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };
                //不同版本的ExchangeServer在这里修改
                ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
				//这里的url就是Exchange webservice地址
                service.Url = new Uri("https://mail.XX.com/EWS/Exchange.asmx");
                //AD域下可以省略下面的认证
                service.Credentials = new NetworkCredential("XX", "XX", "XX.com");
                service.TraceEnabled = true;
                EmailMessage message = new EmailMessage(service);
                message.Subject = Subject;
               

                添加附件               
                //message.Attachments.AddFileAttachment(@"C:\Users\XX\Pictures\Camera Roll\11.jpg");
                //message.Attachments.AddFileAttachment("1111", @"C:\Users\XX\Pictures\Camera Roll\22.png");
                内嵌图片
                //MailBody += "<img src=\"cid:1111\" alt = \"内嵌图片\"/>";
                //message.Body = MailBody;


                //收件人
                message.ToRecipients.Add(to_mail);
                message.CcRecipients.Add(cc_mail);
                message.Body.BodyType = BodyType.HTML;
                message.Save();
                message.SendAndSaveCopy();// 发送
                return true;
            }

            catch (Exception ex)
            {
            	//需要日志管理的加上下面这句,不需要的注释掉
                //LogHelper.WriteLog(ex.Message.ToString(), ex);
                MessageBox.Show(ex.Message.ToString());
                return false;
            }


        }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

48303354

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

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

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

打赏作者

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

抵扣说明:

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

余额充值