C#发邮件之命名空间System.Net.Mail

1.添加一个类,取名为Email

public class Email
    {
        /// <summary>
        /// 发送方发送方服务器地址
        /// </summary>
        public string strHost { get; set; }
        /// <summary>
        /// 发送方帐号
        /// </summary>
        public string strAccount { get; set; }
        /// <summary>
        /// 发送方密码
        /// </summary>
        public string strPwd { get; set; }

        /// <summary>
        /// 发送方邮件地址
        /// </summary>
        public string strFrom { get; set; }
        /// <summary>
        /// 接收方邮件地址
        /// </summary>
        public string to { get; set; }
        /// <summary>
        /// 邮件标题
        /// </summary>
        public string title { get; set; }

        /// <summary>
        /// 邮件正文内容
        /// </summary>
        public string content { get; set; }
        ///// <summary>
        ///// 附件
        ///// </summary>
        //public string sfile { get; set; }
        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="strHost">发送方发送方服务器地址</param>
        /// <param name="strAccount">发送方帐号</param>
        /// <param name="strPwd">发送方密码</param>
        ///  <param name="strFrom">发送方邮件地址</param>
        /// <param name="to">接收方邮件地址</param>
        /// <param name="title">邮件标题</param>
        /// <param name="content">邮件正文内容</param>
        /// <param name="sfile">邮件附件</param>
        /// <returns></returns>
        public string sendMail(Email e)//string strHost, string strAccount, string strPwd, string strFrom, string to, string title, string content
        {
            SmtpClient smtpClient = new SmtpClient();
            if (string.IsNullOrEmpty(e.strHost))
            {
                e.strHost = "smtp.sina.cn";//新浪测试
            }
            if (string.IsNullOrEmpty(e.strAccount))
            {
                e.strAccount = "xxx";
            }
            if (string.IsNullOrEmpty(e.strPwd))
            {
                e.strPwd = "xxx";
            }
            if (string.IsNullOrEmpty(e.strFrom))
            {
                e.strFrom = "xxx";
            }
            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
            smtpClient.Host = e.strHost; ;//指定SMTP服务器
            smtpClient.UseDefaultCredentials = true;
            smtpClient.Credentials = new System.Net.NetworkCredential(e.strAccount, e.strPwd);//用户名和密码


            MailMessage mailMessage = new MailMessage(e.strFrom, e.to);
            mailMessage.Subject = e.title;//主题
            mailMessage.Body = e.content;//内容
            mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//正文编码
            mailMessage.IsBodyHtml = true;//设置为HTML格式
            mailMessage.Priority = MailPriority.High;//优先级
            ////// 添加附件
            //if (e.sfile != "")
            //{
            //    mailMessage.Attachments.Add(new Attachment(e.sfile));
            //}
            try
            {
                smtpClient.Send(mailMessage);
                mailMessage.Dispose();//释放资源
                return "成功";
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }
    }

2.方法调用

                    Email email = new Email();//实例化我们上面的Email类
                    email.strHost = "smtp.163.com";发送方服务器地址
                    email.strAccount = "用户名";发送方用户名 ps:邮箱地址为88888888@163.com 用户名则为:88888888
                    email.to = "收件人邮箱地址";//你要给谁发邮件
                    email.title = “title”;//这个不做解释
                    email.strPwd = "000000";//邮箱授权码,这个在下面解释
                    email.strFrom = "发送方的邮件地址";
                    email.content = @"邮件内容(字写多点,字数少发不成功,不知道为什么,有朋友知道的给我留言,谢谢)";
                    email.sendMail(email);

3.授权码获取

QQ授权码:打开QQ邮箱,点击设置

选择账户

向下拉找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务  根据需要开启

163邮箱:打开163官网  <a href=" https://mail.163.com/">163官网</a>

我这里是已经开启的,没开启的点击开启,后面会进行手机短信验证,验证成功后,设置你自己 的邮箱授权码

到这里就结束了,小弟才疏学浅,各路好汉应取其精华,去其糟粕,希望能够帮助到需要的人!!!

原文地址:https://www.cnblogs.com/mi21/p/9843452.html