C#SMTP发送邮件示例
侧边栏壁纸
  • 累计撰写 62 篇文章
  • 累计收到 23 条评论

C#SMTP发送邮件示例

一缕清风
2021-01-17 / 0 评论 / 38 阅读 / 正在检测是否收录...

简介

这篇文章主要介绍了C# SMTP发送邮件的示例,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下,本文以QQ邮箱为例。

使用教程

  • 在程序开发中通常有推送消息的需求,通常为短信服务,邮件,电话提醒。
  • 短信及电话提醒通常需要向运营商购买服务调用接口,比较麻烦。邮件信息推送也是不错的选择,下面使用C#实现SMTP发送邮件
  • 在贴代码之前,首先需要给QQ邮箱开服务IMAP/SMTP服务,详细开通方法见 "开通方法"。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;

namespace blog_email
{
    public class EmailHelper
    {
        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="info"></param>
        public static void SendEmail(SendMailInfo info)
        {
            try
            {
                //发送电子邮件类
                MailMessage mail = new MailMessage();
                //添加收件人
                foreach (string item in info.Addressee)
                {
                    mail.To.Add(item);
                }
                //添加抄送
                foreach (string item in info.CC)
                {
                    mail.CC.Add(item);

                }
                //邮件主题
                mail.Subject = info.Theme;
                //邮件标题编码
                mail.SubjectEncoding = info.SubjectEncoding;
                //发件信息
                mail.From = new MailAddress(info.From, info.DisplayName, info.SubjectEncoding);

                //邮件内容
                mail.Body = info.Body;
                //邮件内容编码
                mail.BodyEncoding = info.BodyEncoding;
                //是否是HTML邮件
                mail.IsBodyHtml = info.IsBodyHtml;
                //邮件优先级
                mail.Priority = info.Priority;

                //SMTP协议
                SmtpClient smtp = new SmtpClient();
                //是否使用SSL安全加密  使用QQ邮箱必选
                smtp.EnableSsl = info.EnableSsl;
                smtp.UseDefaultCredentials = info.UseDefaultCredentials;

                //验证发件人信息
                smtp.Credentials = new NetworkCredential(info.From, info.Password);
                //开始发送
                smtp.Send(mail);

            }
            catch (Exception e)
            {
                throw e;
            }

        }
    }
    public class SendMailInfo
    {
        public string From { get; set; }//发件人地址
        public string Password { get; set; }//密码
        public string[] Addressee { get; set; }//收件人地址
        public string[] CC { get; set; }//抄送
        public string Theme { get; set; }//主题
        public string DisplayName { get; set; }//发件人名称
        public Encoding SubjectEncoding { get; set; }//编码
        public string Body { get; set; }//邮件内容
        public Encoding BodyEncoding { get; set; }//邮件内容编码
        public bool IsBodyHtml { get; set; }//是否HTML邮件
        public MailPriority Priority { get; set; }//邮件优先级
        public bool EnableSsl { get; set; }//是否ssl
        public bool UseDefaultCredentials { get; set; }
    }
}

调用示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace blog_email
{
    class Program
    {
        static void Main(string[] args)
        {
            EmailHelper.SendEmail(new SendMailInfo()
            {
                Addressee = new string[] { "[email protected]" },
                Body = "这是邮件正文",
                BodyEncoding = Encoding.UTF8,
                CC = new string[] ,
                DisplayName = "测试邮件",
                EnableSsl = true,
                From = "[email protected]",
                IsBodyHtml = false,
                Password = "123456",
                Priority = System.Net.Mail.MailPriority.High,
                SubjectEncoding = Encoding.UTF8,
                Theme = "邮件主题",
                UseDefaultCredentials = false
            });
        }
    }


}
0

评论 (0)

取消