.net郵件的收發(fā)_第1頁
.net郵件的收發(fā)_第2頁
.net郵件的收發(fā)_第3頁
.net郵件的收發(fā)_第4頁
.net郵件的收發(fā)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、.net 郵件的收發(fā)整理 :編程學(xué)習(xí)網(wǎng)加入收藏推薦給朋友本文已被瀏覽 :8320 次發(fā)送郵件現(xiàn)在應(yīng)用得最多的兩種情況就是利用.net 自帶的發(fā)送郵件和利用jmail 組件來發(fā)送郵件。 .net自帶的郵件發(fā)送利用了system.web.mail.mailmessage這個類, 這是在 vs2003 的情況下, 在 vs2005 下更多的是利用system.net.mail.mailmessage,下面的例子是在vs2003 的情況下寫的 ,請在應(yīng)用的時候自己替換掉里面的參數(shù)。public void sendmails() string sendtos=sendto.text.trim();/發(fā)送

2、人string cctos=ccto.text.trim(); /抄送人string receiver=system.text.regularexpressions.regex.split(sendtos+cctos,); /總收件人string frommail=;/發(fā)件人string title= 你好 ; /郵件主題string body= 附件里重要文檔,請查收 !; /郵件主體string showname=ustbwuyi;/顯示名字if(sendtos!= | cctos!=) /用戶名 (取發(fā)送郵箱的 前面的部分 ,即 ustbwuyi1 string mailusername

3、=frommail.substring(0,frommail.indexof(); /密碼string mailpassword=ustbwuyi; system.web.mail.mailmessage mailmessage=new mailmessage(); mailmessage.from=frommail; mailmessage.subject=title; mailmessage.body=body; /添加附件 arraylist filenames; /如果存在附件if(filenames.count=1) /添加附件string filename; for(int k=0

4、;kfilenames.count;k+) filename=filenamesk.tostring(); mailmessage.attachments.add(new mailattachment(filename); mailmessage.fields.add(http:/ mailmessage.fields.add(http:/ mailmessage.fields.add(http:/ /向收件人和抄送人循環(huán)發(fā)送for (int j=0;jreceiver.length;j+) mailmessage.to=receiverj.tostring(); system.web.mai

5、l.smtpmail.smtpserver=; try system.web.mail.smtpmail.send(mailmessage); catch (exception ex) response.write(alert(郵件發(fā)送失敗 ,請您和 ustbwuyi 聯(lián)系 (qq:108556024)!); 上面的例子是利用163 的 smtp 郵件 服務(wù)器 來發(fā)送郵件,當(dāng)然,如果你有自己的郵件服務(wù)器 更好。其次,是利用jmail 組件來發(fā)送,現(xiàn)在jmail 組件的版本很多,在這里我個人推薦jmail4.4pro版本,因為如果你要收郵件的話,必須用 pro 版本,另外,個人經(jīng)過測試了其它幾個

6、版本,發(fā)現(xiàn)只有這個版本不會出現(xiàn)附件丟失的情況,其他幾個版本都會出現(xiàn)附件丟失或者損壞的情況,這個對txt 文件來說沒有影響,但是對于傳送圖片或者其他的一些壓縮文件,會發(fā)現(xiàn)從pop 服務(wù)器 上下過來的附件有一些損壞,從而不能正常打開文件。下面是jmail 發(fā)送郵件的代碼。public void sendmails() jmail.messageclass mymail = new jmail.messageclass(); string sendtos=sendto.text.trim();/發(fā)送人string cctos=ccto.text.trim(); /抄送人string receiver

7、=system.text.regularexpressions.regex.split(sendtos+cctos,); /總收件人string frommail=;/發(fā)件人string title= 你好 ; /郵件主題string body= 附件里是重要文檔,請查收 !; /郵件主體string showname=ustbwuyi;/顯示名字 / 取 email 的前面部分為用戶名,即 ustbwuyi1, 當(dāng)然也可以自己設(shè)置. string mailusername=frommail.substring(0,frommail.indexof(); string mailpassword

8、=ustbwuyi; if(sendtos!= | cctos!=) / 字符集 mymail.charset = gb2312; /附件的編碼格式 mymail.encoding = base64; /是否將信頭編碼成iso-8859-1字符集 mymail.isoencodeheaders = false ; /發(fā)送人郵件地址 mymail.from = frommail; /發(fā)送人姓名 mymail.fromname = showname; / 郵件主題 mymail.subject =title; /身份驗證的用戶名 mymail.mailserverusername = mailus

9、ername; /用戶密碼 mymail.mailserverpassword = mailpassword; /郵件內(nèi)容 mymail.body = body; arraylist filenames; /如果存在附件if(filenames.count=1) /添加附件string filename; for(int k=0;kfilenames.count;k+) filename=filenamesk.tostring(); mymail.addattachment(filename,false,httputility.urldecode(filename.substring(file

10、name.lastindexof(.)+1,3); try /循環(huán)發(fā)送for(int i=0;ireceiver.length;i+) mymail.addrecipient(receiveri,); mymail.send(m,false ); catch (exception ex) response.write(alert(郵件發(fā)送失敗 ,請您和 ustbwuyi 聯(lián)系 (qq:108556024)!); 好了,現(xiàn)在我們來看看接收郵件的問題。一般來說,接收郵件主要分為兩部分,一是將接收到的郵件的信息保存到數(shù)據(jù)庫 ,如郵件的主題,內(nèi)容,發(fā)送人,發(fā)送時間等。其次是對郵件附件的處理,主要將郵件

11、附件從pop 服務(wù)器 上下載下來并保存到數(shù)據(jù)庫, 然后將附件信息保存到數(shù)據(jù)庫 , 如附件的路徑, 附件對應(yīng)的郵件編號等信息。這一點 .net 自帶的似乎并不太好處理,沒有 jmail組件處理方便, 當(dāng)然關(guān)于 .net 自帶的我并沒有深入研究,個人經(jīng)過比較還是推薦jmail ,當(dāng)然前面說過關(guān)于jmail 幾個版本在這方面的差異,所以個人還是推薦jmail4.4pro版本。下面是收郵件的代碼:public void receivemails( string username) jmail.message msg=new jmail.message(); jmail.pop3 jpop = new

12、jmail.pop3(); jmail.attachments atts; jmail.attachment att; /username為用戶名 ,該方法通過用戶名獲取該用戶的pop 設(shè)置 ,即用戶的 pop 用戶名 ,密碼 ,pop 服務(wù)器 地址以及端口號這四個參數(shù) ,這四個參數(shù)是連接pop 服務(wù)器 的必用參數(shù) . sqldatareader datareader = this.extgetsetting(username); if(datareader.read() if(datareaderpopserver.tostring()!=&datareaderpopusername

13、.tostring()!=) /連接 pop 服務(wù)器 jpop.connect(datareaderpopusername.tostring(),datareaderpoppassword.tostring(),datareaderpopserver.tostring(),int32.parse(datareaderpopport.tostring(); /如果 服務(wù)器 上有郵件if(jpop.count=1) for(int i=1;iconvert.todatetime(data.rows00.tostring() /將這封新郵件的信息保存到數(shù)據(jù)庫this.saveextmail(msg,

14、username,datareaderemail.tostring(),jpop.getmessageuid(i); /獲取附件上傳到 服務(wù)器 并且將信息存入 數(shù)據(jù)庫if(atts.count=1) for(int k=0;katts.count;k+) att=attsk;/獲得附件string attname=att.name; try random tempnameint = new random(); string newmaildirname = tempnameint.next(100000000).tostring(); directory.createdirectory(sys

15、tem.web.httpcontext.current.server.mappath(.)+attachfiles+username+newmaildirname); string mailpath=attachfiles+username+newmaildirname+attname; att.savetofile(system.web.httpcontext.current.server.mappath(.)+mailpath); /獲取該封郵件在 數(shù)據(jù)庫 的 id,以便和附件信息相對應(yīng),取郵件表中的最大id 即可int mailid= this .getmailid(); /將附件信息存入 數(shù)據(jù)庫this .at

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論