C 實現傳送郵件

2021-08-21 04:43:56 字數 3368 閱讀 4153

一、郵件伺服器。

qq郵箱的收取郵件支援pop/imap兩種協議,傳送郵件採用smtp協議,收件和發件均使用ssl協議來進行加密傳輸,採用ssl協議需要單獨對帳戶進行設定。採用ssl協議和非ssl協議時埠號有所區別,參照下表的一些常見配置組合: 型別

伺服器名稱

伺服器位址

非ssl協議埠號

ssl協議埠號

發件伺服器

smtp

smtp.qq.com

465/587

收件伺服器

poppop.qq.com

收件伺服器

imap

imap.qq.com

傳送郵件我們這裡就使用發件伺服器的位址以及埠號25。如果是企業郵箱傳送郵件,請更換郵件伺服器位址、埠號。

伺服器位址和埠號均正確,郵件傳送失敗?

請檢視公司內網的郵件傳送協議,是否伺服器ip位址在允許傳送郵件的列表中;或者檢視內網有沒有禁用郵件伺服器端口號。

二、**實現。

//msg為郵件內容,郵件中可以識別標籤,故msg可以為html內容;

//bytefile為附件位元組組,如果郵件存在附件,先將郵件轉換為位元組組;attdesciption為附件名稱,在郵件中展示。

emailsender.current().sendmsg("目標郵箱", "郵件標題", msg, bytefile, attdesciption);

1、傳送郵件幫助類。郵件內容可以是文字也可以是html內容,如果郵件包含附件,需要將附件先轉換為位元組組,並附上附件名稱,使用system.net.mail將附件新增進郵件。

system.io.memorystream ms = new system.io.memorystream(bytefile);

system.net.mail.attachment att = new system.net.mail.attachment(ms, filename);

msg.attachments.add(att);

public class emailsender

private static emailsender instance = new emailsender();

public static emailsender current()

public void sendmsg(string touser, string subject, string body)

public void sendmsg(string touser, string subject, string body, byte bytefile, string filename)

public void sendmsg(listtousers, listccusers, string subject, string body)

if (ccusers != null)

}msg.from = new mailaddress(from, fromname, system.text.encoding.utf8);

msg.subject = subject;//郵件標題

msg.subjectencoding = system.text.encoding.utf8;//郵件標題編碼

alternateview htmlbody = alternateview.createalternateviewfromstring(body, null, "text/html");

msg.alternateviews.add(htmlbody);

= body; //郵件內容

msg.bodyencoding = system.text.encoding.utf8;//郵件內容編碼

msg.isbodyhtml = true;//,false;//是否是html郵件

msg.priority = mailpriority.high;//郵件優先順序

smtpclient client = new smtpclient();

client.credentials = new system.net.networkcredential(from, password);

client.port = iport;//25 465;//qqmail使用的埠

client.host = strhost;

= true;//經過ssl加密

object userstate = msg;

trycatch (system.net.mail.smtpexception ex)}}

public void sendmsg(listtousers, listccusers, string subject, string body, byte bytefile, string filename)

if (ccusers != null)

}msg.from = new mailaddress(from, fromname, system.text.encoding.utf8);

msg.subject = subject;//郵件標題

msg.subjectencoding = system.text.encoding.utf8;//郵件標題編碼

alternateview htmlbody = alternateview.createalternateviewfromstring(body, null, "text/html");

msg.alternateviews.add(htmlbody);

= body; //郵件內容

msg.bodyencoding = system.text.encoding.utf8;//郵件內容編碼

msg.isbodyhtml = true;//,false;//是否是html郵件

msg.priority = mailpriority.high;//郵件優先順序

if (bytefile != null)

smtpclient client = new smtpclient();

client.credentials = new system.net.networkcredential(from, password);

client.port = iport;//25 465;//qqmail使用的埠

client.host = strhost;

= true;//經過ssl加密

object userstate = msg;

trycatch (system.net.mail.smtpexception ex)}}

}

C 實現郵件傳送

c 實現郵件傳送 通過.net framework 2.0下提供的 system.net.mail 可以輕鬆的實現,本文列舉了3種途徑來傳送 1.通過localhost 2.通過普通smtp 3.通過ssl的smtp 下面乙個乙個來說 1.通過localhost 1public void sendm...

C 實現郵件傳送

要實現郵件傳送功能首先需要準備兩三個郵箱測試,在這裡呢準備了2個qq郵箱和乙個微軟郵箱,詳細請看 我這裡是使用qq郵箱向另外兩個郵箱傳送郵件的,在開始寫 之前你需要登入你qq郵箱進行以下幾個操作 1.開啟mstp服務,相當於乙個授權的過程,開啟這個後才可以通過第三方傳送郵件 點選開啟後會有乙個提示框...

C 郵件傳送 實現類

using system using system.collections.generic using system.configuration using system.io using system.linq using system.net.mail using system.net.mime...