zoukankan      html  css  js  c++  java
  • 10分钟学会发送邮件到指定邮箱

    很多小伙伴对于【程序发送邮件】不明觉厉的同时又羡慕嫉妒恨,其实发送邮件是一个很常用的功能,

    我们这里就简单做一个发送邮箱的案例。

    PS:案例使用qq邮箱,当然,也可以使用其他邮箱,只要替换邮箱关键字即可,下面案例已做标注。

    首先,我们需要一个【当前发件授权码】,这个码需要登录发件箱里面进行开启,我们先开启一下。

    1、登录发件箱的邮箱,进入【设置】

    2、点击【账户】

    3、下滑找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,点击开启,根据提示操作完成后得到一个授权码,小编这里已经开启过了,就不演示了,不懂的童鞋可以自行百度。

    授权码获取到后,我们就开始撸代码了,总共三步

    1、配置web文件;

    2、编写帮助类;

    3、编写控制器测试。

    配置web文件

     <appSettings>
       <!--begin 邮箱配置-->
        <add key="smtpServer" value="smtp.qq.com" /><!--邮箱SMTP服务器 可用qq邮箱、163邮箱,只是关键字不一样-->
        <add key="mailFrom" value="1509802981@qq.com" /><!--当前发件箱的邮箱账号-->
        <add key="userPassword" value="wckfuxwamayvgiba" /> <!--当前发件授权码,需要去发件开通获取  -->
        <add key="mailTo" value="1509802981@qq.com;1509802981@qq.com" /><!--收件人:收件箱邮箱名称,多个收件人以分号;做分割符,这里我用同一个做测试-->
        <!--end 邮箱配置-->
      </appSettings>

    编写帮助类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Mail;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ProjectWebDAL
    {
        public static class EmailHelper
        {
            #region 发送邮件
            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="mailSubject">邮箱主题</param>
            /// <param name="mailContent">邮箱内容</param>
            /// <returns>返回发送邮箱的结果</returns>
            public static bool SendEmail(string mailSubject, string mailContent)
            {
                // 设置发送方的邮件信息
                string smtpServer = System.Configuration.ConfigurationManager.AppSettings["smtpServer"];//SMTP服务器  //smtp.qq.com 
                string mailFrom = System.Configuration.ConfigurationManager.AppSettings["mailFrom"];  // 当前发件箱登陆名
                string userPassword = System.Configuration.ConfigurationManager.AppSettings["userPassword"]; //授权码,在当前发送邮箱里面进行设置 
                string mailTo = System.Configuration.ConfigurationManager.AppSettings["mailTo"];  //收件人:收件箱邮箱名称,多个收件人以分号;做分割符
                bool b = false;
                string[] mailTos = mailTo.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                // 邮件服务设置
                SmtpClient smtpClient = new SmtpClient();
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
                //smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;//指定电子邮件发送方式
                smtpClient.Host = smtpServer; //指定SMTP服务器
                smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用户名和密码
                for (int i = 0; i < mailTos.Length; i++)
                {
                    // 发送邮件设置        
                    MailMessage mailMessage = new MailMessage(mailFrom, mailTos[i]);
                    mailMessage.Subject = mailSubject;//主题
                    mailMessage.Body = mailContent;//内容
                    mailMessage.BodyEncoding = Encoding.UTF8;//正文编码
                    mailMessage.IsBodyHtml = true;//设置为HTML格式
                    mailMessage.Priority = MailPriority.Low;//优先级
                    try
                    {
                        smtpClient.Send(mailMessage); // 发送邮件
                        b = true;
                    }
                    catch (SmtpException ex)
                    {
                        return false;
                    }
                }
                return b;
            }
    
    
            #endregion
        }
    }

    编写控制器测试(我使用的是控制器测试)

         //邮件发送
            public JsonResult Email()
            {
                ResultInfo result = new ResultInfo();
                EmailHelper.SendEmail("我是邮件主题", "我是邮件内容 ");
                result.res = true;
                result.info = "邮件发送成功!";
                return Json(result, JsonRequestBehavior.AllowGet);
            }
    
            //自定义返回json数据类型
            public class ResultInfo
            {
                public bool res { get; set; }
                public string info { get; set; }
            }

    然后我们看一下效果

    浏览器显示发送成功

     指定邮箱也收到邮件了,为什么有两条呢,因为我们web配置文件里面发送多个邮件,两个都是同一个邮箱。

    PS:我们发送的邮箱不一定需要写到配置文件,可以写到数据库,然后读取数据库指定邮件账户进行发送。

    程序员最快的成功就是复制,有一个成功的demo后再去进行逐步了解,快去试一试吧!

    欢迎关注订阅我的微信公众平台【熊泽有话说】,更多好玩易学知识等你来取
    作者:熊泽-学习中的苦与乐
    公众号:熊泽有话说
    出处:https://www.cnblogs.com/xiongze520/p/10254123.html
    创作不易,任何人或团体、机构全部转载或者部分转载、摘录,请在文章明显位置注明作者和原文链接。  

     

  • 相关阅读:
    Asp.NET 4.0 ajax实例DataView 模板编程1
    ASP.NET 4.0 Ajax 实例DataView模板编程 DEMO 下载
    部分东北话、北京话
    .NET 培训课程解析(一)
    ASP.NET 4.0 Ajax 实例DataView模板编程2
    ASP.NET Web Game 架构设计1服务器基本结构
    ASP.NET Web Game 构架设计2数据库设计
    TFS2008 基本安装
    Linux上Oracle 11g安装步骤图解
    plsql developer远程连接oracle数据库
  • 原文地址:https://www.cnblogs.com/xiongze520/p/10254123.html
Copyright © 2011-2022 走看看