最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

.net jMail郵件發(fā)送(含抄送、密送、多發(fā)、日志記錄)實例代碼

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:40:20
文檔

.net jMail郵件發(fā)送(含抄送、密送、多發(fā)、日志記錄)實例代碼

.net jMail郵件發(fā)送(含抄送、密送、多發(fā)、日志記錄)實例代碼:jmail是一個第三方郵件操作組件,通常位于web服務(wù)器端,實現(xiàn)收郵件及發(fā)郵件功能(客戶端用Foxmail這類就很好了)??梢岳盟p松實現(xiàn)發(fā)郵件、抄送、密送、多發(fā)、日志記錄及收郵件功能。本章要講的,就是:發(fā)郵件、抄送、密送、多發(fā)、日志記錄。 一、組件準(zhǔn)備
推薦度:
導(dǎo)讀.net jMail郵件發(fā)送(含抄送、密送、多發(fā)、日志記錄)實例代碼:jmail是一個第三方郵件操作組件,通常位于web服務(wù)器端,實現(xiàn)收郵件及發(fā)郵件功能(客戶端用Foxmail這類就很好了)??梢岳盟p松實現(xiàn)發(fā)郵件、抄送、密送、多發(fā)、日志記錄及收郵件功能。本章要講的,就是:發(fā)郵件、抄送、密送、多發(fā)、日志記錄。 一、組件準(zhǔn)備

jmail是一個第三方郵件操作組件,通常位于web服務(wù)器端,實現(xiàn)收郵件及發(fā)郵件功能(客戶端用Foxmail這類就很好了)。可以利用它輕松實現(xiàn)發(fā)郵件、抄送、密送、多發(fā)、日志記錄及收郵件功能。本章要講的,就是:發(fā)郵件、抄送、密送、多發(fā)、日志記錄。

一、組件準(zhǔn)備
下載JMail44_pro并安裝(記下安裝路徑)

找到安裝路徑,將其中的jmail.dll復(fù)制到項目中

二、核心發(fā)送代碼
新建MailAPI.cs,并輸入以下代碼

代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using jmail;
using System.IO;

namespace JmailDemo
{
    public class MailAPI
    {
        /// <summary>
        /// 郵件發(fā)送
        /// </summary>
        /// <param name="zt">主題</param>
        /// <param name="zw">正文</param>
        /// <param name="getMail">收件人地址</param>
        /// <param name="fromMail">發(fā)件人地址,多個地址間用英文逗號或分號隔開</param>
        /// <param name="csMail">抄送人地址,多個地址間用英文逗號或分號隔開</param>
        /// <param name="msMail">密送人地址,多個地址間用英文逗號或分號隔開</param>
        /// <param name="fjMail">附件服務(wù)器目錄,多個服務(wù)器端目錄之間以英文逗號或分號隔開</param>
        public void Send(string zt, string zw, string getMail, string fromMail, string csMail, string msMail, string fjMail)
        {
            jmail.Message jmessage = new Message();
            //Jmail系統(tǒng)配置 
            jmessage.Charset = "GB2312";
            jmessage.Encoding = "base64";
            //配置郵件信息 
            jmessage.Subject = zt.Trim();//郵件主題 
            jmessage.HTMLBody = zw;//郵件正文 
            //配置收件人信息 
            string[] sj = getMail.Split(',', ';');
            if (sj.Length > 1)
            {
                for (int i = 0; i < sj.Length; i++)
                {
                    jmessage.AddRecipient(sj[i], "", "");//收件人郵箱地址
                }
            }
            else
            {
                jmessage.AddRecipient(sj[0], "", "");
            }
            //配置抄送人信息 
            string[] cs = csMail.Split(',', ';');
            if (cs.Length > 1)
            {
                for (int i = 0; i < cs.Length; i++)
                {
                    jmessage.AddRecipientCC(cs[i]);
                }
            }
            else
            {
                jmessage.AddRecipient(cs[0], "", "");
            }
            //配置密送人信息
            string[] ms = msMail.Split(',', ';');
            if (ms.Length > 1)
            {
                for (int i = 0; i < ms.Length; i++)
                {
                    jmessage.AddRecipientBCC(ms[i]);
                }
            }
            else
            {
                jmessage.AddRecipient(ms[0], "", "");
            }
            //配置發(fā)件人信息 
            jmessage.ReplyTo = fromMail;//指定收件人回復(fù)的,所回復(fù)到的地址 
            jmessage.From = fromMail;//郵件發(fā)件人的郵箱地址 
            jmessage.FromName = "Test!";//郵件發(fā)件人顯示的姓名 
            jmessage.MailServerUserName = fromMail;//用戶名身份驗證 
            jmessage.MailServerPassWord = "password";//發(fā)送郵件在服務(wù)器中的密碼 
            //配置附件 
            string[] fj = fjMail.Split(',', ';');
            if (fj.Length > 1)
            {
                for (int i = 0; i < fj.Length; i++)
                {
                    jmessage.AddAttachment(fj[i],true,null);
                }
            }
            else
            {
                jmessage.AddRecipient(sj[0], "", "");
            }
            //配置追加信息
            jmessage.AppendHTML("<a href='//www.gxlcms.com'>此郵件發(fā)送者</a>");
            //發(fā)送郵件 
            for (int i = 0; i < sj.Length; i++)
            {
                jmessage.Send("smtp.qq.com", false);//發(fā)送郵件服務(wù)器 
            }
            //配置jmail日志
            jmessage.Logging = true;
            using (StreamWriter sw = new StreamWriter("E:\\log.txt", true))
            {
                sw.Write(jmessage.Log);
                sw.Close();
            }
            jmessage.Close();//郵件發(fā)送完畢,關(guān)閉郵件發(fā)送狀態(tài) 
        }
    }
}

說明:
1)在//配置收件人信息//配置抄送人信息//配置密送人信息//配置附件 這四處用if...else...是為解決單郵件發(fā)送和多郵件發(fā)送的問題,設(shè)成**.length>0這個條件也行,但如果這樣做,比如:沒有抄送人時,cs長度為1,cs[0]是因為沒有這個郵箱地址才沒有發(fā)送出去;

2)配置jmail郵件日志 一定要寫到發(fā)送郵件的后面,且jmessage.Logging = true;和sw.Write(jmessage.Log);一定要同時使用;

3) 日志記錄到文件 E:\\log.txt 中,要選存在,用log4net也行;

4) 當(dāng)出報錯:the message was undeliverable.all servers failed to receive the message時,原因為smtp服務(wù)器不支持,更換smtp服務(wù)器,以前用163的沒問題,但現(xiàn)在用163的不行了。

三、調(diào)用發(fā)送代碼:
新建Mail.aspx,添加一個服務(wù)端按鈕,在其單擊事件中寫以下代碼:

代碼如下:
        protected void Button1_Click(object sender, EventArgs e)
        {
            MailAPI sendMail = new MailAPI();
            string fj = Server.MapPath("files/JSON.rar");
            //sendMail.Send("這是主題", "這是正文", "這是收件人郵箱列表", "這是發(fā)件人郵箱地址", "抄送人郵箱列表", "密件人郵箱列表", "附件服務(wù)器地址列表");
            sendMail.Send("這是主題", "這是正文", "aaa@163.com,bbb@qq.com", "ccc@qq.com", "ddd@163.com,eee@qq.com", "", fj);
            //各列表之間以 英文狀態(tài)的逗號分分號隔開
        }

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

.net jMail郵件發(fā)送(含抄送、密送、多發(fā)、日志記錄)實例代碼

.net jMail郵件發(fā)送(含抄送、密送、多發(fā)、日志記錄)實例代碼:jmail是一個第三方郵件操作組件,通常位于web服務(wù)器端,實現(xiàn)收郵件及發(fā)郵件功能(客戶端用Foxmail這類就很好了)。可以利用它輕松實現(xiàn)發(fā)郵件、抄送、密送、多發(fā)、日志記錄及收郵件功能。本章要講的,就是:發(fā)郵件、抄送、密送、多發(fā)、日志記錄。 一、組件準(zhǔn)備
推薦度:
標(biāo)簽: 發(fā)郵件 多發(fā) 抄送
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top