<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA學習點點滴滴

    用開放的腦子去闖蕩;用開闊的視野去拼搏;用平和的身心去磨練;用美好的理想去追求!

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      18 隨筆 :: 1 文章 :: 2 評論 :: 0 Trackbacks
    本文章對:
    發(fā)送普通郵件,接受普通郵件
    發(fā)送帶有附件的郵件,接收帶有附件的郵件
    發(fā)送html形式的郵件,接受html形式的郵件
    [b[發(fā)送帶有圖片的郵件等做了一個總結。
    程序代碼:  
    程序代碼:

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import com.borland.jbcl.layout.*;
    import javax.mail.*;
    import java.util.*;
    import javax.mail.internet.*;
    import java.io.*;
    import javax.activation.*;


    public String host="smtp.163.com";
    public String username="abcdefg";
    public String password="abcdefg";
    public String mail_head_name="this is head of this mail";
    public String mail_head_value="this is head of this mail";
    public String mail_to="xyz@163.com";
    public String mail_from="abcdefg@163.com";
    public String mail_subject="this is the subject of this test mail";
    public String mail_body="this is the mail_body of this test mail";
    //此段代碼用來發(fā)送普通電子郵件
    void jButton1_actionPerformed(ActionEvent e) {
    try
    {
    Properties props = new Properties();//獲取系統(tǒng)環(huán)境
    Authenticator auth = new Email_Autherticator();//進行郵件服務器用戶認證

    props.put("mail.smtp.host",host);
    props.put("mail.smtp.auth","true");
    Session session = Session.getDefaultInstance(props,auth);
    //設置session,和郵件服務器進行通訊。
    MimeMessage message = new MimeMessage(session);
    message.setContent("Hello","text/plain");//設置郵件格式
    message.setSubject(mail_subject);//設置郵件主題
    message.setText(mail_body);//設置郵件正文
    message.setHeader(mail_head_name,mail_head_value);//設置郵件標題
    message.setSentDate(new Date());//設置郵件發(fā)送日期

    Address address = new InternetAddress(mail_from,"sunxiaoming");
    message.setFrom(address); //設置郵件發(fā)送者的地址

    //如果要對郵件發(fā)送者進行多個參數(shù)的設置,可以用以下語句
    // Address address[] = {new InternetAddress("sunxm@oaklet.co.jp","sunxmatoaklet"),new InternetAddress("firstsxm@hotmail.com","sunxmathotmail")};
    // message.addFrom(address);

    Address toAddress = new InternetAddress(mail_to);//設置郵件接收方的地址
    message.addRecipient(Message.RecipientType.TO,toAddress);
    // Address ccAddress = new InternetAddress("firstsxm@hotmail.com");//設置郵件抄送者的地址
    // message.addRecipient(Message.RecipientType.CC,ccAddress);


    Transport.send(message);//發(fā)送郵件
    /* // to get a specific instance from the session for your protocol.pass along the username and password
    // (blank if unnecessary).send the message,and close the connection;
    message.saveChanges();
    Transport transport = session.getTransport("smtp");
    transport.connect(host,username,password);
    transport.sendMessage(message,message.getAllRecipients());
    transport.close();
    */

    System.out.println("send ok!");
    }
    catch(Exception ex)
    {
    System.out.println("faild"+ex);
    }
    }

    //此段代碼用來進行服務器對用戶的認證
    public class Email_Autherticator extends Authenticator
    {
    public Email_Autherticator()
    {
    super();
    }
    public PasswordAuthentication getPasswordAuthentication()
    {
    return new PasswordAuthentication(username,password);
    }
    }
    //該程序為接收郵件
    void jButton2_actionPerformed(ActionEvent e) {
    try
    {
    Properties props = System.getProperties(); //獲取系統(tǒng)變量
    Authenticator auth = new Email_Autherticator();
    props.put("mail.smtp.host",host);
    props.put("mail.smtp.auth","true");
    Session session = Session.getDefaultInstance(props,auth); //建立session
    Store store = session.getStore("pop3");
    store.connect(host,username,password);

    //After connecting to the Store,you can get a Folder,which must be opened before you can read messages from it:
    Folder folder = store.getFolder("INBOX");//連接到Store后,取得一個文件夾,一般默認的是INDEX
    folder.open(Folder.READ_WRITE);//READ_ONLY為打開方式
    Message message[] = folder.getMessages();//從文件夾獲取郵件信息

    //可以用兩種方式去獲得郵件信息,getContent()用來獲得郵件的主體信息。而WriteTo()可以用來獲得郵件的全部信息,包括頭部信息
    // System.out.println(((MimeMessage)message).getContent());
    for (int i=0,n=message.length;i
    {

    String out_from_person = ((InternetAddress)message.getFrom()[0]).getPersonal();
    String out_from_address = ((InternetAddress)message.getFrom()[0]).getAddress();
    System.out.println("From:"+out_from_person+"t");
    System.out.println("Address:"+out_from_address+"t");

    String out_subject = message.getSubject();
    System.out.println("Subject:"+out_subject+"t");

    //以下代碼用來獲得郵件的正文信息
    Part messagePart = message;
    Object out_content = messagePart.getContent();
    if (out_content instanceof Multipart)
    {
    messagePart = ((Multipart)out_content).getBodyPart(0);
    System.out.println("[ Multipart Message ]");
    }
    String out_content_type = messagePart.getContentType();
    System.out.println("CONTENT:"+out_content_type);

    if (out_content_type.startsWith("text/plain") | | out_content_type.startsWith("text/html"))
    {
    InputStream ipstm = messagePart.getInputStream();
    BufferedReader bufreader = new BufferedReader(new InputStreamReader(ipstm));
    String thisLine = bufreader.readLine();
    while (thisLine != null)
    {
    System.out.println("thisLine: "+thisLine);
    thisLine = bufreader.readLine();
    }
    }
    System.out.println("------------------------------------------------------------");
    message.setFlag(Flags.Flag.DELETED,true);//最后刪除服務器端的郵件
    }
    //DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER
    folder.close(true);//true的話,徹底刪除已經(jīng)標記為DELETE的郵件,如果為false的話,就不刪除
    store.close();//關閉
    }
    catch(Exception ej2)
    {
    System.out.println(ej2);
    }
    }

    void jButton4_actionPerformed(ActionEvent e) {
    try
    {//該程序為回復郵件
    Properties props = System.getProperties(); //獲取系統(tǒng)變量
    Authenticator auth = new Email_Autherticator(); //取得穃uFFFD衿魅現(xiàn)?
    props.put("mail.smtp.host",host);
    props.put("mail.smtp.auth","true");
    Session session = Session.getDefaultInstance(props,auth); //建立session
    Store store = session.getStore("pop3");
    store.connect(host,username,password);

    Folder folder = store.getFolder("INBOX");
    folder.open(Folder.READ_WRITE);
    Message message[] = folder.getMessages();

    for (int i=0,n=message.length;i
    {
    // String out_from_person = ((InternetAddress)message.getFrom()[0]).getPersonal();//獲取郵件發(fā)信人的署名

    String out_from_address = ((InternetAddress)message.getFrom()[0]).getAddress();
    System.out.println(out_from_address);

    Message forward = new MimeMessage(session);
    forward.setSubject("Fwd:"+message.getSubject());
    forward.setFrom(new InternetAddress(mail_to));
    forward.addRecipient(Message.RecipientType.TO,new InternetAddress(out_from_address));

    BodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setText("Here you go with the original message:nn");

    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);

    messageBodyPart = new MimeBodyPart();
    messageBodyPart.setDataHandler(message.getDataHandler());

    multipart.addBodyPart(messageBodyPart);
    forward.setContent(multipart);

    Transport.send(forward);
    message.setFlag(Flags.Flag.DELETED,true);//DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER
    }
    folder.close(true);
    store.close();//關閉
    }
    catch(Exception ej2)
    {
    System.out.println(ej2);
    }

    }

    void jButton5_actionPerformed(ActionEvent e) {
    try
    {
    Properties props = new Properties();
    Authenticator auth = new Email_Autherticator();

    props.put("mail.smtp.host",host);
    props.put("mail.smtp.auth","true");
    Session session = Session.getDefaultInstance(props,auth);
    MimeMessage message = new MimeMessage(session);
    message.setContent("Hello","text/plain");
    message.setSubject(mail_subject);
    message.setText(mail_body);
    message.setHeader(mail_head_name,mail_head_value);
    message.setSentDate(new Date());
    message.setFrom(new InternetAddress(mail_from,"sunxiaoming")); //to signal man 
    //原理:可以將郵件看成有多個部分組成的,如正文是一個部分,附件也是一個部分,所以用BodyPart來設置郵件的格式
    程序代碼:  
    程序代碼:
    message.addRecipient(Message.RecipientType.TO,new InternetAddress(mail_to));
    BodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setText("Pardon Ideas");
    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);

    messageBodyPart = new MimeBodyPart();
    DataSource source = new FileDataSource("./20020423/test.zip");//此處設置郵件的附件
    messageBodyPart.setDataHandler(new DataHandler(source));
    messageBodyPart.setFileName("test.zip");
    multipart.addBodyPart(messageBodyPart);
    message.setContent(multipart);
    Transport.send(message);
    System.out.println("send ok!");
    }
    catch(Exception ex)
    {
    System.out.println("faild"+ex);
    }

    }
    //此段代碼用來發(fā)送帶有附件的郵件
    void jButton6_actionPerformed(ActionEvent e) {
    try
    {
    Properties props = System.getProperties();
    Authenticator auth = new Email_Autherticator();
    props.put("mail.smtp.host",host);
    props.put("mail.smtp.auth","true");
    Session session = Session.getDefaultInstance(props,auth); //建立session
    Store store = session.getStore("pop3");
    store.connect(host,username,password);

    //After connecting to the Store,you can get a Folder,which must be opened before you can read messages from it:
    Folder folder = store.getFolder("INBOX");
    folder.open(Folder.READ_WRITE);
    Message message[] = folder.getMessages();

    for (int i=0,n=message.length;i
    {
    //獲得郵件的部分信息,如頭部信息,送信人的署名,送信人的郵件地址
    String out_from_person = ((InternetAddress)message.getFrom()[0]).getPersonal();
    String out_from_address = ((InternetAddress)message.getFrom()[0]).getAddress();
    System.out.println("From:"+out_from_person+"t");
    System.out.println("Address:"+out_from_address+"t");
    String out_subject = message.getSubject();
    System.out.println("Subject:"+out_subject+"t");

    //以下代碼用來獲取郵件的主體信息
    Part messagePart = message;
    Object out_content = messagePart.getContent();
    if (out_content instanceof Multipart)
    {
    messagePart = ((Multipart)out_content).getBodyPart(0);
    System.out.println("[ Multipart Message ]");
    }
    String out_content_type = messagePart.getContentType();
    System.out.println("CONTENT:"+out_content_type);

    if (out_content_type.startsWith("text/plain") | | out_content_type.startsWith("text/html"))
    {
    InputStream ipstm = messagePart.getInputStream();
    BufferedReader bufreader = new BufferedReader(new InputStreamReader(ipstm));
    String thisLine = bufreader.readLine();
    while (thisLine != null)
    {
    System.out.println("thisLine: "+thisLine);
    thisLine = bufreader.readLine();
    }
    }
    //獲取附件
    Multipart mp = (Multipart)message.getContent();
    for (int j=0,m=mp.getCount();j
    {
    System.out.println("***"+m+"***");
    Part part = mp.getBodyPart(j);
    String disposition = part.getDisposition();
    if ((disposition != null) && ((disposition.equals(part.ATTACHMENT)) | | (disposition.equals(part.INLINE))))
    {

    //以下代碼將獲得的附件保存到當前目錄下,以part.getFileName()為文件名,也既是附件的名稱。
    File filename = new File(part.getFileName());
    for (int k=0;filename.exists();k++)
    {
    filename = new File(part.getFileName()+k);
    }
    FileOutputStream myFileoutputstream = new FileOutputStream(filename);
    int chunk = part.getSize();//獲得附件的大小,不一定很準確。

    byte [] buffer = new byte[chunk];
    InputStream instream = part.getInputStream();
    instream.read(buffer,0,chunk);
    myFileoutputstream.write(buffer,0,chunk);
    instream.close();
    myFileoutputstream.close();
    }
    }
    System.out.println("------------------------------------------------------------");
    message.setFlag(Flags.Flag.DELETED,true);
    }
    folder.close(true);
    store.close();//關閉
    }
    catch(Exception ej2)
    {
    System.out.println(ej2);
    }
    }

    //此段代碼用來發(fā)送帶有html信息的郵件
    void jButton8_actionPerformed(ActionEvent e) {
    try
    {
    Properties props = new Properties();
    Authenticator auth = new Email_Autherticator();
    props.put("mail.smtp.host",host);
    props.put("mail.smtp.auth","true");
    Session session = Session.getDefaultInstance(props,auth);
    MimeMessage message = new MimeMessage(session);
    //設置郵件正文
    String htmltext="< h1>hello< /h1>"+"< a href="http://www.sina.com.cn" target="_blank">click me please!< /a>";
    message.setContent(htmltext,"text/html");//text/plain設置郵件的格式因為是帶有html文檔的,所以用text/html格式

    message.setSubject(mail_subject);
    // message.setText(mail_body);在使用message.setContent()時候,好象不能用message.setText()
    message.setHeader(mail_head_name,mail_head_value);
    message.setSentDate(new Date());
    Address address = new InternetAddress(mail_from,"sunxiaoming");
    message.setFrom(address);
    Address toAddress = new InternetAddress(mail_to);
    message.addRecipient(Message.RecipientType.TO,toAddress);
    Transport.send(message);
    System.out.println("send ok!");
    }
    catch(Exception ex)
    {
    System.out.println("faild"+ex);
    }

    }

    //此段代碼用來發(fā)送帶有圖片的郵件
    void jButton9_actionPerformed(ActionEvent e) {
    try
    {
    String file = "./20020423/test.gif";
    Properties props = new Properties();
    Authenticator auth = new Email_Autherticator();

    props.put("mail.smtp.host",host);
    props.put("mail.smtp.auth","true");
    Session session = Session.getDefaultInstance(props,auth);
    MimeMessage message = new MimeMessage(session);

    message.setSubject("Embedded Image");
    Address address = new InternetAddress(mail_from,"sunxiaoming");
    message.setFrom(address);
    Address toAddress = new InternetAddress(mail_to);
    message.addRecipient(Message.RecipientType.TO,toAddress);
    message.setHeader(mail_head_name,mail_head_value);
    message.setSentDate(new Date());

    BodyPart messageBodyPart = new MimeBodyPart();
    String htmlText = "< h1>< /h1>"+"< img src="cid:memememe">";//加入圖片
    messageBodyPart.setContent(htmlText,"text/html");
    //原理同發(fā)送附件一樣,將郵件看成有多個部分組成的,先設置每一個部分,然后再全部將它們合起來即可。
    //Create a related multi-part to combine the parts
    MimeMultipart multipart = new MimeMultipart("related");
    multipart.addBodyPart(messageBodyPart);

    //Create part for the image
    messageBodyPart = new MimeBodyPart();

    //Fetch the image and associate to part
    DataSource fds = new FileDataSource(file);
    messageBodyPart.setDataHandler(new DataHandler(fds));
    messageBodyPart.setHeader("Content-ID","memememe");

    //Add part to multi-part
    multipart.addBodyPart(messageBodyPart);

    //Associate multi-part with message
    message.setContent(multipart);

    Transport.send(message);
    System.out.println("send ok!");
    }
    catch(Exception ex)
    {
    System.out.println("faild"+ex);
    }

    }

    //該程序用來接受帶有html信息的郵件
    void jButton7_actionPerformed(ActionEvent e) {
    try
    {
    Properties props = System.getProperties();
    Authenticator auth = new Email_Autherticator();
    props.put("mail.smtp.host",host);
    props.put("mail.smtp.auth","true");
    Session session = Session.getDefaultInstance(props,auth);
    Store store = session.getStore("pop3");
    store.connect(host,username,password);

    //After connecting to the Store,you can get a Folder,which must be opened before you can read messages from it:
    Folder folder = store.getFolder("INBOX");
    folder.open(Folder.READ_WRITE);
    Message message[] = folder.getMessages();

    for (int i=0,n=message.length;i
    // for (int i=0,n=1;i
    {
    String out_from_person = ((InternetAddress)message.getFrom()[0]).getPersonal();
    String out_from_address = ((InternetAddress)message.getFrom()[0]).getAddress();
    System.out.println("From:"+out_from_person+"t");
    System.out.println("Address:"+out_from_address+"t");

    String out_subject = message.getSubject();
    System.out.println("Subject:"+out_subject+"t");

    //獲取郵件的信息,并且對其每一部分進行操作
    Part messagePart = message;
    Object out_content = messagePart.getContent();
    if (out_content instanceof Multipart)
    {
    messagePart = ((Multipart)out_content).getBodyPart(0);
    System.out.println("[ Multipart Message ]");
    }
    String out_content_type = messagePart.getContentType();
    System.out.println("CONTENT:"+out_content_type);

    jEditorPane1.setText("");//將其顯示在jEditorPanel上
    jEditorPane1.setContentType("text/html");
    jEditorPane1.setText((String)out_content);
    jEditorPane1.setEditable(false);

    /*
    if (out_content_type.startsWith("text/plain") | | out_content_type.startsWith("text/html"))
    {
    InputStream ipstm = messagePart.getInputStream();
    BufferedReader bufreader = new BufferedReader(new InputStreamReader(ipstm));
    String thisLine = bufreader.readLine();
    while (thisLine != null)
    {
    System.out.println("thisLine: "+thisLine);
    thisLine = bufreader.readLine();
    }
    }
    */

    System.out.println("------------------------------------------------------------");
    message.setFlag(Flags.Flag.DELETED,true);
    }
    folder.close(true);
    store.close();
    }
    catch(Exception ej2)
    {
    System.out.println(ej2);
    }

    posted on 2006-02-18 19:40 海思 閱讀(421) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲国产精品嫩草影院| 亚洲国产高清视频在线观看| 羞羞漫画在线成人漫画阅读免费 | 亚洲免费网站观看视频| 三年片在线观看免费观看高清电影 | 又粗又长又爽又长黄免费视频| 国产精品无码一二区免费| 亚洲狠狠婷婷综合久久| 麻豆精品国产免费观看| 国内成人精品亚洲日本语音| 国产成人免费福利网站| 美女隐私免费视频看| mm1313亚洲国产精品美女| 国产一级a毛一级a看免费视频| 国产亚洲情侣一区二区无码AV| 中国好声音第二季免费播放| 国产精品亚洲片在线| 91精品全国免费观看含羞草| 亚洲乱码一二三四区麻豆| 韩国18福利视频免费观看| 麻豆安全免费网址入口| 国产自偷亚洲精品页65页| 久久久久国产精品免费免费不卡 | 亚洲欧美在线x视频| 亚洲中久无码不卡永久在线观看| 中文字幕在线免费播放| 亚洲综合自拍成人| 嫩草视频在线免费观看| 三级片免费观看久久| 亚洲国产女人aaa毛片在线| 日本在线高清免费爱做网站| 亚洲AV香蕉一区区二区三区| 永久亚洲成a人片777777| 亚洲免费视频播放| 美女被爆羞羞网站免费| 亚洲成a人片77777老司机| 四虎成人免费网址在线| 一个人晚上在线观看的免费视频| 亚洲高清美女一区二区三区| 最近中文字幕免费mv视频8| 一级毛片不卡免费看老司机|