消息推送(一)邮件发送

1、发送邮件所需信息

1)邮件服务器地址
(2)发件人邮箱账号
(3)发件人邮箱密码

2、发送邮件实现

    public class EmailSendEntity
    {
        /// <summary>
        /// 收件人的邮件地址 
        /// </summary>
        public string ConsigneeAddress { get; set; }

        /// <summary>
        /// 收件人的名称
        /// </summary>
        public string ConsigneeName { get; set; }

        /// <summary>
        /// 收件人标题
        /// </summary>
        public string ConsigneeHand { get; set; }

        /// <summary>
        /// 收件人的主题
        /// </summary>
        public string ConsigneeTheme { get; set; }

        /// <summary>
        /// 发件邮件服务器的Smtp设置
        /// </summary>
        public string SendSetSmtp { get; set; }

        /// <summary>
        /// 发件人的邮件
        /// </summary>
        public string SendEmailAddress { get; set; }

        /// <summary>
        /// 发件人的邮件密码
        /// </summary>
        public string SendPwd { get; set; }
        /// <summary>
        /// 发件内容
        /// </summary>
        public string SendContent { get; set; }
    }
 	
 	
        /// <summary>
        /// 邮件发送方法
        /// </summary>
        /// <param name="entity">邮件信息</param>
        public bool SendEmail(EmailSendEntity entity)
        {
            try
            {
                //确定smtp服务器端的地址,实列化一个客户端smtp-发件人的邮件服务器地址 
                SmtpClient sendSmtpClient = new SmtpClient(entity.SendSetSmtp);
                //构造一个发件的人的地址-发件人的邮件地址和收件人的标题、编码
                MailAddress sendMailAddress = new MailAddress(entity.SendEmailAddress, entity.ConsigneeHand, Encoding.UTF8);
                //构造一个收件的人的地址-收件人的邮件地址和收件人的名称和编码
                MailAddress consigneeMailAddress = new MailAddress(entity.ConsigneeAddress, entity.ConsigneeName, Encoding.UTF8);
                //构造一个Email对象-发件地址和收地址
                MailMessage mailMessage = new MailMessage(sendMailAddress, consigneeMailAddress);
                //邮件的主题
                mailMessage.Subject = entity.ConsigneeTheme;
                //邮件正文的编码
                mailMessage.BodyEncoding = Encoding.UTF8;
                //主题内容的编码
                mailMessage.SubjectEncoding = Encoding.UTF8;
                //邮件内容
                mailMessage.Body = entity.SendContent;
                //获取或者设置指定邮件正文是否为html格式
                mailMessage.IsBodyHtml = false;
                //设置邮件信息 (指定如何处理待发的电子邮件) 
                sendSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定如何发邮件 是以网络来发
                //服务器支持安全接连,安全则为true 
                sendSmtpClient.EnableSsl = true;
                //是否随着请求一起发 
                sendSmtpClient.UseDefaultCredentials = false;
                //用户登录信息
                NetworkCredential myCredential = new NetworkCredential(entity.SendEmailAddress, entity.SendPwd);
                //登录
                sendSmtpClient.Credentials = myCredential;
                object userState = mailMessage;
                //发送邮件
                sendSmtpClient.SendAsync(mailMessage, userState);
                return true;
            }
            catch (Exception ex)
            { 
                return false; 
            }
        }

3、调用

  		public void SendEmailTest()
        { 
            EmailSendEntity entity = new EmailSendEntity();
            entity.SendEmailAddress = "xxxxxxxxx@sina.com";
            entity.SendPwd = "xxxxxxxxxxx";
            entity.SendSetSmtp = "smtp.sina.com";
            entity.ConsigneeAddress = "xxxxxxxxxx@xxxx.com";
            entity.ConsigneeHand = "测试邮件发送";
            entity.ConsigneeName = "xxx";
            entity.ConsigneeTheme = "主题:测试邮件发送";  
            entity.SendContent = "莫愁前路无知己,天下谁人不识君";
             
            bool result = SendEmail(entity);
            if (result)
            {
                MessageBox.Show("邮件发送成功!");
            }
            else
            {
                MessageBox.Show("邮件发送失败!");
            } 
        }

4、结果

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值