zoukankan      html  css  js  c++  java
  • 邮件发送很难么?

    1.创建控制台程序:

    2.添加一个与发送邮件相关的实体类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace SendEmail
    {
        /// <summary>
        /// 邮件发送实体类
        /// </summary>
        public class EmailSend
        {
            /// <summary>
            /// 邮件服务器
            /// </summary>
            public string  smtpServer { get; set; }
            /// <summary>
            /// 发件邮箱
            /// </summary>
            public string sendEmail { get; set; }
            /// <summary>
            /// 收件箱
            /// </summary>
            public string dstEmail { get; set; }
            /// <summary>
            /// 授权码
            /// </summary>
            public sbyte pwd { get; set; }
            /// <summary>
            /// 抄送邮箱
            /// </summary>
            public string ccEmail { get; set; }
            /// <summary>
            /// 密送邮箱
            /// </summary>
            public string bccEmail { get; set; }
            /// <summary>
            /// 邮件主题(标题)
            /// </summary>
            public string theme { get; set; }
            /// <summary>
            /// 邮件内容
            /// </summary>
            public string content { get; set; }
        }
    }

    3.添加一个配置文件App.config,将相关内容配置到里面:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
            <!--邮件服务器-->
            <add key="smtpServer" value=""/>
            <!--发件邮箱-->
            <add key="sendEmail"  value=""/>
            <!--收件邮箱-->
            <add key="dstEmail"  value=""/>
            <!--客户端授权码-->
            <add key="clientPwd"  value=""/>
            <!--抄送邮箱-->
            <add key="ccEmail"  value=""/>
            <!--密送邮箱-->
            <add key="bccEmail"  value=""/>
            <!--设置定时器间隔时间(秒数)-->
            <add key="internal"/>
        </appSettings>
    </configuration>

    4.程序入口:

    引入命名空间:

    using System.Net.Mail;
    using System.Net;

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Timers;
    using System.Net.Mail;
    using System.Net;
    
    namespace SendEmailDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                //创建一个邮件实体对象
                EmailSend email = new EmailSend();
                //从配置文件取出相关的值并对邮件实体对象赋值
    
                //获取邮件服务器
                email.smtpServer = System.Configuration.ConfigurationManager.AppSettings["smtpserver"];
                //获取发件箱
                email.sendEmail = System.Configuration.ConfigurationManager.AppSettings["sendEmail"];
                //获取收件箱
                email.dstEmail = System.Configuration.ConfigurationManager.AppSettings["dstEmail"];
                //获取客户端授权码
                email.clientPwd = System.Configuration.ConfigurationManager.AppSettings["clientPwd"];
                //获取抄送邮箱
                email.ccEmail = System.Configuration.ConfigurationManager.AppSettings["ccEmail"];
                //获取密送邮箱
                email.bccEmail = System.Configuration.ConfigurationManager.AppSettings["bccEmail"];
    
    
                email.theme = "C#邮件发送测试";
                email.content = "邮件测试内容";
    
                string msg=SendEmail(email);
                Console.WriteLine(msg);
                Console.ReadKey();
                
    
            }
    
    
    
            public static  string SendEmail(EmailSend _mailSend)
            {
                try
                {
                    MailMessage mail = new MailMessage();
    
                    //邮件服务器客户端对象
                    SmtpClient client = new SmtpClient();
                    //设置邮件服务器
                    client.Host = _mailSend.smtpServer;
                    //设置端口
                    client.Port = 25;
                    //是否使用安全套接字层加密连接
                    client.EnableSsl = false;
                    //不使用默认凭证,注意此句必须放在 client.Credentials 的前面
                    client.UseDefaultCredentials = false;
                 
                    client.Credentials = new NetworkCredential(_mailSend.sendEmail, _mailSend.clientPwd);
    
                    //邮件通过网络直接发送到服务器
                    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    
                    //账号信息
                    mail.From = new MailAddress(_mailSend.sendEmail);
    
                    mail.To.Clear();
    
                    //添加收件箱
                    foreach (var item in _mailSend.dstEmail.Split(';'))
                    {
                        if (string.IsNullOrEmpty(item))
                        {
                            continue;
                        }
                        mail.To.Add(item);
                    }
    
                    //添加抄送
                    if (!string.IsNullOrEmpty(_mailSend.ccEmail))
                    {
                        foreach (var item in _mailSend.ccEmail.Split(';'))
                        {
                            if (string.IsNullOrEmpty(item))
                            {
                                continue;
                            }
                            mail.CC.Add(new MailAddress(item));
                        }
                    }
    
                    //添加密送
                    if (!string.IsNullOrEmpty(_mailSend.bccEmail))
                    {
                        foreach (var item in _mailSend.bccEmail.Split(';'))
                        {
                            if (string.IsNullOrEmpty(item))
                            {
                                continue;
                            }
                            mail.Bcc.Add(new MailAddress(item));
                        }
                    }
    
                    //设置主题
                    mail.Subject = _mailSend.theme;
                    //设置内容
                    mail.Body = _mailSend.content;
                    //设置编码
                    mail.SubjectEncoding = Encoding.UTF8;
                   
    
                    //发送邮件
                    client.Send(mail);
    
                    return "邮件发送成功!!";
                }
                catch (Exception ex)
                {
    
                    return"邮件发送异常,捕获异常:"+ex.Message;
                }
            }
    
    
        }
    }

     5.未将邮箱的客户端授权开启时,会出现如下异常:

    6.浏览器登录邮箱-->设置-->客户端授权密码-->点击开启-->输入验证码-->确定

    7.设置授权码

    8.设置成功,注:此授权码为客户端发送邮件所必须的

    9.再次发送邮件:

    10.浏览器登录邮箱查看:

    成功!!

    11.官网参考地址:https://msdn.microsoft.com/zh-cn/library/system.net.mail.mailmessage(VS.80).aspx

  • 相关阅读:
    使用BitMap进行海量数据去重
    记一次std::process::Child使用过程中碰到的问题
    我的第一篇rust博客
    优秀编程习惯总结
    利用generator模拟协程完美解决异步回调问题
    polymer框架在代码中动态创建需要支持内容分发的自定义元素并挂载到文档中
    属于自己的完美web服务器完成
    web components折腾记
    内边距的妙用
    用js修改带!important的css样式
  • 原文地址:https://www.cnblogs.com/jiangxianshen/p/7495111.html
Copyright © 2011-2022 走看看