<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)站導航:
     
    主站蜘蛛池模板: 相泽南亚洲一区二区在线播放| 亚洲国产精品久久| 99亚洲男女激情在线观看| www.999精品视频观看免费| 亚洲一级片在线播放| 一二三四影视在线看片免费| 亚洲乱人伦精品图片| 免费人成视频在线| 亚洲国产精品嫩草影院| 国产免费观看黄AV片| 成人免费网站视频www| 亚洲人成网站在线播放vr| 免费91最新地址永久入口 | 成全影视免费观看大全二| 最新亚洲卡一卡二卡三新区| 女人18特级一级毛片免费视频| 日韩色视频一区二区三区亚洲 | 国产亚洲福利精品一区| 久久中文字幕免费视频| 亚洲视频一区二区三区四区| 午夜精品在线免费观看| 一级毛片**免费看试看20分钟| 亚洲香蕉成人AV网站在线观看| 1000部免费啪啪十八未年禁止观看 | 国产中文字幕免费观看| 中文字幕成人免费高清在线| 亚洲情a成黄在线观看动漫尤物| 午夜福利不卡片在线播放免费 | gogo免费在线观看| 亚洲卡一卡2卡三卡4卡无卡三 | 久久99热精品免费观看动漫| 亚洲一区二区三区乱码在线欧洲| 国产精品视频免费一区二区三区 | 亚洲自偷自偷在线成人网站传媒 | 久久精品a亚洲国产v高清不卡| 久久精品a一国产成人免费网站 | 国产男女猛烈无遮挡免费视频 | 思思re热免费精品视频66| 看免费毛片天天看| 久久亚洲日韩精品一区二区三区| 国产禁女女网站免费看|