国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

基于 JavaMail 包的郵件發(fā)送程序

2019-11-18 13:09:51
字體:
供稿:網(wǎng)友

  javaMail API 是一個用于閱讀、編寫和發(fā)送電子消息的可選包(標(biāo)準(zhǔn)擴展),可以用來建立基于標(biāo)準(zhǔn)的電子郵件客戶機,它配置了各種因特網(wǎng)郵件協(xié),包括SMTP 、POP 、IMAP和 MIME ,還包括相關(guān)的 NNTP 、S/MIME 及其它協(xié)議。通常開發(fā)JavaMail 程序還需要有Sun 的JavaBeans Activation Framework (JAF )。JavaBeans Activation Framework 的運行很復(fù)雜,這里簡單的說就是JavaMail 的運行必須得依靠于它的支持,比如JavaMail 利用JavaBeans Activation Framework 來處理MIME 編碼的郵件附件。JavaMail 接口包含在javax.mail 及其子包中,JavaBeans Activation Framework 接口包含在javax.activation 包中,JAF 規(guī)范是"Glasgow" JavaBeans 規(guī)范的一部分,關(guān)于JAF的更多細(xì)節(jié),請參考JAF 指南:
  
  http://java.sun.com/beans/glasgow/jaf.Html
  
  核心JavaMail API 由七個類組成:session 、Message 、Address 、Authenticator 、Transport 、Store 及 Folder ,它們都來自javax.mail 、即JavaMail API 頂級包。可以用這些類完成大量常見的電子郵件任務(wù),包括發(fā)送消息、檢索消息、刪除消息、認(rèn)證、回復(fù)消息、轉(zhuǎn)發(fā)消息、治理附件、處理基于HTML文件格式的消息以及搜索或過濾郵件列表。有關(guān)JavaMail 的更多信息,請參考JavaMail 指南:
  
  http://java.sun.com/PRodUCts/javamail/
  
  類似的用javamail實現(xiàn)的sendmail程序,網(wǎng)上有很多。但筆者發(fā)現(xiàn)大都有一點問題。我的code在下面。調(diào)式前請確定您的機子已經(jīng)安裝好JDK1.4 javamial1.3.2 和JAF。假如沒有安裝請按如下步驟安裝:
  
  1 從www.java.sun.com 網(wǎng)站上獲取最新的JDK。然后設(shè)置java環(huán)境變量。
  
  假如是Win95/98,在/autoexec.bat的最后面添加如下3行語句:
  
  JAVA_HOME=c:/j2sdk1.4.2
  
  PATH=%JAVA_HOME%/bin;%PATH%
  
  CLASSPATH=.;%JAVA_HOME%/lib
  
  看好了CLASSPATH中第一個“.”,這個代表當(dāng)前目錄,很多人HelloWorld沒有運行起來大多是這個原因。
  
  假如是Win2000或者XP,使用鼠標(biāo)右擊“我的電腦”->屬性->高級->環(huán)境變量
  
  系統(tǒng)變量->新建->變量名:JAVA_HOME 變量值:c:/j2sdk1.4.2
  
  系統(tǒng)變量->編輯->變量名:Path 在變量值的最前面加上:%JAVA_HOME%/bin;
  
  系統(tǒng)變量->新建->變量名:CLASSPATH 變量值:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar;
  
  CLASSPATH前面的那個"."和上面的意義是一樣的。
  
  請調(diào)式一個helloworld來驗證安裝是否成功?
  
  2 http://java.sun.com/products/javamail/ 下載最新的javamail。
  
  set CLASSPATH=%CLASSPATH%;c:/download/javamail-1.3.2/mail.jar;.
  
  3 http://java.sun.com/products/javabeans/glasgow/jaf.html下載JAF 。
  
  set CLASSPATH=%CLASSPATH%;c:/download/activation/activation.jar
  
  4 ok。終于可以先喘口氣了。 接下來開始程序部分。把if(themail.setTo("########") == false) return;中的#####號改為你自己的郵箱。 再把if(themail.addFileAffix("#######") == false) return; 中#####寫為本地的一個文件路徑。也可空著。為了更多的人學(xué)習(xí),請大家不要修改sendMail@163.com 密碼:sendcode 本郵箱只在程序測試中使用!!
  
  然后,在DOS中
  
  javac sendMail.java
  
  java sendMail
  
  呵呵 成功!!!我的主機DOS顯示
  
  D:/>java sendMail
  
  設(shè)置系統(tǒng)屬性:mail.smtp.host = smtp.163.com
  
  預(yù)備獲取郵件會話對象!
  
  預(yù)備創(chuàng)建MIME郵件對象!
  
  設(shè)置smtp身份認(rèn)證:mail.smtp.auth = true
  
  設(shè)置郵件主題!
  
  設(shè)置郵件體格式
  
  設(shè)置收信人
  
  設(shè)置發(fā)信人!
  
  增加郵件附件:D:/sendMail.java
  
  程序得到用戶名與密碼
  
  正在發(fā)送郵件....
  
  發(fā)送郵件成功!
  
  ************************************************************
  
  /**
  
  * @author kangkang
  
  * http://corncc.ikdiy.com
  
  * 2005.4.14
  
  */
  
  import java.util.*;
  
  import javax.mail.*;
  
  import javax.mail.internet.*;
  
  import java.util.Date;
  
  import javax.activation.*;
  
  import java.io.*;
  
  public class sendMail
  
  {
  
  // 21-30行把本程序所用變量進(jìn)行定義。 具體在main中對它們賦植。
  
  private MimeMessage mimeMsg; //MIME郵件對象
  
  private Session session; //郵件會話對象
  
  private Properties props; //系統(tǒng)屬性
  
  private boolean needAuth = false; //smtp是否需要認(rèn)證
  
  private String username = ""; //smtp認(rèn)證用戶名和密碼
  
  private String passWord = "";
  
  private Multipart mp; //Multipart對象,郵件內(nèi)容,標(biāo)題,附件等內(nèi)容均添加到其中后再生成//MimeMessage對象
  
  public sendMail(String smtp)
  
  {
  
  setSmtpHost(smtp);
  
  createMimeMessage();
  
  }
  
  /**
  
  
  * @param hostName String
  
  */
  
  public void setSmtpHost(String hostName)
  
  {
  
  System.out.println("設(shè)置系統(tǒng)屬性:mail.smtp.host = "+hostName);
  
  if(props == null)props = System.getProperties(); //獲得系統(tǒng)屬性對象
  
  props.put("mail.smtp.host",hostName); //設(shè)置SMTP主機
  
  }
  
  /**
  
  * @return boolean
  
  */
  
  public boolean createMimeMessage()
  
  {
  
  try{
  
  System.out.println("預(yù)備獲取郵件會話對象!");
  
  session = Session.getDefaultInstance(props,null); //獲得郵件會話對象
  
  }
  
  catch(Exception e)
  
  {
  
  System.err.println("獲取郵件會話對象時發(fā)生錯誤!"+e);
  
  return false;
  
  }
  
  System.out.println("預(yù)備創(chuàng)建MIME郵件對象!");
  
  try{
  
  mimeMsg = new MimeMessage(session); //創(chuàng)建MIME郵件對象
  
  mp = new MimeMultipart(); //mp 一個multipart對象
  
  //Multipart is a container that holds multiple body parts.
  
  return true;
  
  }
  
  catch(Exception e)
  
  {
  
  System.err.println("創(chuàng)建MIME郵件對象失敗!"+e);
  
  return false;
  
  }
  
  }
  
  /**
  
  * @param need boolean
  
  */
  
  public void setNeedAuth(boolean need) {
  
  System.out.println("設(shè)置smtp身份認(rèn)證:mail.smtp.auth = "+need);
  
  if(props == null)props = System.getProperties();
  
  if(need){
  
  props.put("mail.smtp.auth","true");
  
  }else{
  
  props.put("mail.smtp.auth","false");
  
  }
  
  }
  
  /**
  
  * @param name String
  
  * @param pass String
  
  */
  
  public void setNamePass(String name,String pass)
  
  {
  
  System.out.println("程序得到用戶名與密碼");
  
  username = name;
  
  password = pass;
  
  }
  
  /**
  
  * @param mailSubject String
  
  * @return boolean
  
  */
  
  public boolean setSubject(String mailSubject) {
  
  System.out.println("設(shè)置郵件主題!");
  
  try{
  
  mimeMsg.setSubject(mailSubject);
  
  return true;
  
  }
  
  catch(Exception e) {
  
  System.err.println("設(shè)置郵件主題發(fā)生錯誤!");
  
  return false;
  
  }
  
  }
  
  /**
  
  * @param mailBody String
  
  */
  
  public boolean setBody(String mailBody)
  
  {
  
  try
  
  {
  
  System.out.println("設(shè)置郵件體格式");
  
  BodyPart bp = new MimeBodyPart();
  
  bp.setContent(""
  
  +mailBody,"text/html;charset=GB2312");
  
  mp.addBodyPart(bp);
  
  return true;
  
  }
  
  catch(Exception e)
  
  {
  
  System.err.println("設(shè)置郵件正文時發(fā)生錯誤!"+e);
  
  return false;
  
  }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 枞阳县| 滦平县| 九龙城区| 来安县| 新巴尔虎左旗| 广丰县| 东明县| 项城市| 新巴尔虎左旗| 巫溪县| 南岸区| 平罗县| 册亨县| 水富县| 德钦县| 梧州市| 衢州市| 泸溪县| 红桥区| 湘潭市| 廊坊市| 龙里县| 启东市| 苍山县| 礼泉县| 广宗县| 屯留县| 邮箱| 通辽市| 平罗县| 武强县| 图木舒克市| 武强县| 丁青县| 许昌县| 台南市| 莱州市| 康定县| 桑日县| 石阡县| 安宁市|