邮件Web客户端相关
前段時間在忙著做Mail客戶端相關的東西,挺頭疼的。
網(wǎng)上相關信息并不是很多。主要是關于發(fā)送郵件的,主要用于對留言進行回復。這些功能主要是用在企業(yè)站上面的,對于Web客戶端,還是不夠的。
WebMail中包含了:收件箱、發(fā)件箱、草稿箱、已發(fā)郵件、垃圾郵件、垃圾郵件處理、簽名管理、收件箱管理、文件夾管理和用戶名信息管理。
其中最浪費時間的是收件箱。對于Web程序的限制,對網(wǎng)絡的要求,性能的要求相對高點。
Mail中最重要的幾個點是:能收、能發(fā)、不丟郵件、能看。
升級一下需要的東西:收的快、發(fā)的快、穩(wěn)定性高,可定時收發(fā)。
?
這里首先用到的第三方組件是JMail。是jmail 在很多地方都會有人用到,這個組件中有免費版本,或許這也是其流行的一個原因。
在發(fā)送郵件時,它的優(yōu)點是:可以設置郵件的優(yōu)先級、支持Html郵件、可在郵件中加入圖片、可多收件人、抄送;支持要SMTP發(fā)信認證的Smtp服務器;
這是網(wǎng)上的一段發(fā)信的代碼:
/******************************************/
public bool SendMail()?
{?
try?
{?
jmail.MessageClass myMail = new jmail.MessageClass();?
myMail.Charset="GB2312";//郵件使用字符集?
myMail.From = model.From; //郵件發(fā)送者郵件地址?
myMail.FromName = model.FromName; //郵件發(fā)送者名稱?
myMail.AddRecipient(model.To,model.ToName,"");//添加郵件接收者名稱以及郵件地址?
myMail.Subject = model.Subject; //郵件主題?
myMail.Body = model.Body; //郵件內(nèi)容?
// 判斷是否有附件?
if(model.FileName != "")?
{?
myMail.AddAttachment(model.FileName,false,model.FileType);//添加郵件附件?
}?
myMail.Priority =model.Priority; //郵件的緊急程度?
myMail.MailServerUserName = model.MailServerUserName; //登陸郵件服務器的用戶名?
myMail.MailServerPassWord = model.MailServerPassWord; //登陸郵件服務器的密碼?
return myMail.Send(model.MailDomain,false); //郵件服務器地址(例:smtp.163.com)?
}?
catch(Exception ex)?
{?
throw new Exception(this+".SendMail():"+ex.ToString());?
}?
}?
/******************************************/
?
然后說收信:
收信中,有一個收信時間的問題。這個糾結(jié)了好久的時間。
當郵件服務器中有10封郵件時,收完10封。用Jmail很快速。過幾天,有了一封新郵件,怎么收?
很多人會說,判斷是否是未收郵件,如果是就接收,這就OK了。事實就是這樣,但怎么判斷是不是未收的郵件呢?
?在存入郵件到庫中時候,有一個唯一ID--MailId(怎么個算法,不清楚哈)。通過讀取Mail服務器上的MailId然后逐個的判斷是否已經(jīng)存在,存在則獲取這封郵件的信息。
在郵件數(shù)量200以內(nèi),這樣的方法還是可以使用的,不會太影響到速度。
?
那么,服務器有20000封呢?
IMAP 技術可以實現(xiàn),只收取郵件的部分,如:Header ?or Size?
?
?
未完待續(xù)……
?
轉(zhuǎn)載于:https://www.cnblogs.com/jzb-dev/archive/2011/12/18/2292211.html
總結(jié)
以上是生活随笔為你收集整理的邮件Web客户端相关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TWaver html5 + NodeJ
- 下一篇: 【备忘】bounce ease