国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

asp.net中郵箱發送

2019-11-14 14:14:17
字體:
來源:轉載
供稿:網友

    郵箱發送今天終于解決了,從不會到會用了3個晚上才終于解決了,有好多問題都不是代碼的問題,而是郵箱的設置上的問題。下面我一一的講解一下。

   1.郵箱發送的原理,我使用圖片來解釋

    

左邊的user_a@itcast.cn是發送的郵箱(下面我就是用a郵箱指代),右邊的user_b@itheima.com是接收的郵箱(下面我就是用b郵箱指代)。

1)、郵箱a發送到他自己的smtp服務器上,如:郵箱a是Outlook上注冊的郵箱,那么郵箱a的郵件就發送到outlook上的smtp服務器上

2)、通過smtp服務器的通訊規則,進行傳送到郵箱b的smtp服務器上,有smtp服務器再發送到存儲設備上,再發送到pop3服務器上,最后發給郵箱b

注:最主要的是1),在這里主要講解發送。

2.下面是發送郵件的類

using System;using System.Linq;using System.Net.Mail;using System.Text;namespace Micua.Infrastructure.Utility{    /// <summary>    /// 郵件發送助手類    /// </summary>    /// <remarks>    ///  2013-11-18 18:56 Created By iceStone    /// </remarks>    public static class MailHelper    {        PRivate readonly static string SmtpServer = "smtp的服務器地址"; //smtp.wedn.net        private readonly static int SmtpServerPort = 25;        private readonly static bool SmtpEnableSsl = false;        private readonly static string SmtpUsername = "發送的郵箱";          private readonly static string SmtpDisplayName = "測試郵箱123";        private readonly static string SmtpPassWord = "授權碼的位置";           /// <summary>        /// 發送郵件到指定收件人        /// </summary>        /// <remarks>        ///  2013-11-18 18:55 Created By iceStone        /// </remarks>        /// <param name="to">收件人地址</param>        /// <param name="subject">主題</param>        /// <param name="mailBody">正文內容(支持HTML)</param>        /// <param name="copyTos">抄送地址列表</param>        /// <returns>是否發送成功</returns>        public static bool Send(string to, string subject, string mailBody, params string[] copyTos)        {            return Send(new[] { to }, subject, mailBody, copyTos, new string[] { }, MailPriority.Normal);        }        /// <summary>        /// 發送郵件到指定收件人        /// </summary>        /// <remarks>        ///  2013-11-18 18:55 Created By iceStone        /// </remarks>        /// <param name="tos">收件人地址列表</param>        /// <param name="subject">主題</param>        /// <param name="mailBody">正文內容(支持HTML)</param>        /// <param name="ccs">抄送地址列表</param>        /// <param name="bccs">密件抄送地址列表</param>        /// <param name="priority">此郵件的優先級</param>        /// <param name="attachments">附件列表</param>        /// <returns>是否發送成功</returns>        /// <exception cref="System.ArgumentNullException">attachments</exception>        public static bool Send(string[] tos, string subject, string mailBody, string[] ccs, string[] bccs, MailPriority priority, params Attachment[] attachments)        {            if (attachments == null) throw new ArgumentNullException("attachments");            if (tos.Length == 0) return false;            //創建Email實體            var message = new MailMessage();            message.From = new MailAddress(SmtpUsername, SmtpDisplayName);            message.Subject = subject;            message.Body = mailBody;            message.BodyEncoding = Encoding.UTF8;            message.IsBodyHtml = true;            message.Priority = priority;            //插入附件            foreach (var attachment in attachments)            {                message.Attachments.Add(attachment);            }            //插入收件人地址,抄送地址和密件抄送地址            foreach (var to in tos.Where(c => !string.IsNullOrEmpty(c)))            {                message.To.Add(new MailAddress(to));            }            foreach (var cc in ccs.Where(c => !string.IsNullOrEmpty(c)))            {                message.CC.Add(new MailAddress(cc));            }            foreach (var bcc in bccs.Where(c => !string.IsNullOrEmpty(c)))            {                message.CC.Add(new MailAddress(bcc));            }            //創建SMTP客戶端            var client = new SmtpClient            {                Host = SmtpServer,                Credentials = new System.Net.NetworkCredential(SmtpUsername, SmtpPassword),                DeliveryMethod = SmtpDeliveryMethod.Network,                EnableSsl = SmtpEnableSsl,                Port = SmtpServerPort            };            //client.SendCompleted += Client_SendCompleted;            //try            //{            //發送郵件            client.Send(message);            //client.SendAsync(message,DateTime.Now.ToString());            //client.Dispose();            //message.Dispose();            return true;            //}            //catch (Exception)            //{            //    throw;            //}        }    }}

主要是改前面的幾個私有靜態變量,下面我仔細講解一下,我以網易郵箱為例,自己隨便編個郵箱(ceshi@163.com,授權碼:ceshi123)

private readonly static string SmtpServer = "smtp的服務器地址"; 
填寫smtp的地址,如:網易的smtp服務器地址是smtp.163.comprivate readonly static int SmtpServerPort = 25;
這個不用改,這個是端口號private readonly static bool SmtpEnableSsl = false;
這個不用改,如果設置為true的話,上面的端口號就要改,改成好像是465,這個我不確定private readonly static string SmtpUsername = "發送的郵箱";
發送的郵箱,如:網易的郵箱ceshi@163.comprivate readonly static string SmtpDisplayName = "測試郵箱123";
這個地方自己可以隨便設置一下,看看是什么效果private readonly static string SmtpPassword = "授權碼的位置";
這個最重要,我最后花了大量的時間就在這上面,授權碼就是第三方客戶端登錄時需要輸入的,首先就需要在郵箱里進行設置,這個和代碼就沒有什么關系了,下面我重點講解。

最后在調用這個類就可以了。

3.如何有郵箱的授權碼

  比如網易郵箱:你可以百度一下,也可以按照我的大致思路進行設置,不同的郵箱有不同的設置,基本上就是登錄網頁郵箱,點擊設置,找到有關于smtp服務的設置,就可以了。

注:QQ郵箱的我進行設置,但是不行,我使用的是網易的可以,不知道別的行不行,大家可以試一下,有什么不懂得可以給我留言,如果大家知道如何設置qq郵箱的,可以給我說一下,讓我也學習一下,謝謝大家了。希望這篇文章對你有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉新县| 阳高县| 平定县| 荣昌县| 陕西省| 丰都县| 汝阳县| 论坛| 布拖县| 桑日县| 岳阳市| 岑巩县| 印江| 安阳县| 营口市| 方城县| 兴文县| 浦北县| 新乡县| 五大连池市| 湘乡市| 扬州市| 英超| 民丰县| 云南省| 天津市| 贵南县| 兴山县| 商南县| 临泉县| 郑州市| 寿光市| 施甸县| 黔西县| 三原县| 昌江| 江源县| 南投县| 金山区| 宿松县| 扎兰屯市|