如果要在郵件地址后面增加名字的話,可以通過傳遞兩個參數(shù):代表郵件地址和名字的字符串來建立一個具有郵件地址和名字的郵件地址類:
Address address = new InternetAddress("president@whitehouse.gov", "George Bush");
本文在這里所講的郵件地址類是為了設(shè)置郵件信息的發(fā)信人和收信人而準(zhǔn)備的,在建立了郵件地址類后,我們通過message的setFrom()和setReplyTo()兩種方法設(shè)置郵件的發(fā)信人:
message.setFrom(address);message.setReplyTo(address);
若在郵件中存在多個發(fā)信人地址,我們可用addForm()方法增加發(fā)信人:
Address address[] = ...;message.addFrom(address);
為了設(shè)置收信人,我們使用addRecipient()方法增加收信人,此方法需要使用Message.RecipientType的常量來區(qū)分收信人的類型:
message.addRecipient(type, address)
下面是Message.RecipientType的三個常量:
Message.RecipientType.TO
Message.RecipientType.CC
Message.RecipientType.BCC
因此,如果我們要發(fā)送郵件給總統(tǒng),并發(fā)用一個副本給第一夫人的話,下面的方法將被用到:
Address toAddress = new InternetAddress("vice.president@whitehouse.gov");Address ccAddress = new InternetAddress("first.lady@whitehouse.gov");message.addRecipient(Message.RecipientType.TO, toAddress);message.addRecipient(Message.RecipientType.CC, ccAddress);
JavaMail API并沒有提供檢查郵件地址有效性的機(jī)制。當(dāng)然我們可以自己完成這個功能:驗證郵件地址的字符是否按照RFC822規(guī)定的格式書寫或者通過DNS服務(wù)器上的MX記錄驗證等。
E.Authenticator
像java.net類那樣,JavaMail API通過使用授權(quán)者類(Authenticator)以用戶名、密碼的方式訪問那些受到保護(hù)的資源,在這里“資源”就是指郵件服務(wù)器。在javax.mail包中可以找到這個JavaMail的授權(quán)者類(Authenticator)。
在使用Authenticator這個抽象類時,我們必須采用繼承該抽象類的方式,并且該繼承類必須具有返回PasswordAuthentication對象(用于存儲認(rèn)證時要用到的用戶名、密碼)getPasswordAuthentication()方法。并且要在Session中進(jìn)行注冊,使Session能夠了解在認(rèn)證時該使用哪個類。
下面代碼片斷中的MyAuthenticator就是一個Authenticator的子類。
Properties props = new Properties();// fill props with any informationAuthenticator auth = new MyAuthenticator();Session session = Session.getDefaultInstance(props, auth);
F.Transport
在發(fā)送信息時,Transport類將被用到。這個類實現(xiàn)了發(fā)送信息的協(xié)議(通稱為SMTP),此類是一個抽象類,我們可以使用這個類的靜態(tài)方法send()來發(fā)送消息:
Transport.send(message);
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |