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

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

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

    JAVA學(xué)習(xí)點點滴滴

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

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

    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();//進行郵件服務(wù)器用戶認證

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

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

    //如果要對郵件發(fā)送者進行多個參數(shù)的設(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);//設(shè)置郵件接收方的地址
    message.addRecipient(Message.RecipientType.TO,toAddress);
    // Address ccAddress = new InternetAddress("firstsxm@hotmail.com");//設(shè)置郵件抄送者的地址
    // 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);
    }
    }

    //此段代碼用來進行服務(wù)器對用戶的認證
    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);//最后刪除服務(wù)器端的郵件
    }
    //DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER
    folder.close(true);//true的話,徹底刪除已經(jīng)標記為DELETE的郵件,如果為false的話,就不刪除
    store.close();//關(guān)閉
    }
    catch(Exception ej2)
    {
    System.out.println(ej2);
    }
    }

    void jButton4_actionPerformed(ActionEvent e) {
    try
    {//該程序為回復(fù)郵件
    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();//關(guān)閉
    }
    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來設(shè)置郵件的格式
    程序代碼:  
    程序代碼:
    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");//此處設(shè)置郵件的附件
    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();//關(guān)閉
    }
    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);
    //設(shè)置郵件正文
    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設(shè)置郵件的格式因為是帶有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ā)送附件一樣,將郵件看成有多個部分組成的,先設(shè)置每一個部分,然后再全部將它們合起來即可。
    //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)站導(dǎo)航:
     
    主站蜘蛛池模板: 4hu四虎免费影院www| 美女啪啪网站又黄又免费| 国产一级a毛一级a看免费视频 | 国产99视频精品免费专区| 久久激情亚洲精品无码?V| 四虎影视在线看免费观看| 亚洲欧洲日产国码一级毛片| 特级毛片aaaa级毛片免费| 国产三级免费电影| 一边摸一边爽一边叫床免费视频| 免费看男女下面日出水视频| 一级人做人爰a全过程免费视频 | 美女视频黄频a免费| 亚洲AV无码乱码在线观看| 中国极品美軳免费观看| 亚洲成色WWW久久网站| 57pao一国产成永久免费| 亚洲av专区无码观看精品天堂| 成年女人午夜毛片免费看| 精品国产日韩亚洲一区91| 亚洲av手机在线观看| 中文字幕a∨在线乱码免费看 | jizz18免费视频| 亚洲va久久久噜噜噜久久男同| 最近免费中文字幕mv电影| 亚洲色欲色欲www| 亚洲免费在线观看| 无码国产精品一区二区免费式芒果| 亚洲欧洲精品一区二区三区| 久久久久国产精品免费免费搜索| 看一级毛片免费观看视频| 亚洲av永久无码精品网站| 日韩在线免费视频| 九九视频高清视频免费观看| 亚洲国产精品久久久久网站 | 老司机亚洲精品影视www| 免费A级毛片无码视频| 亚洲成AV人影片在线观看| 亚洲线精品一区二区三区影音先锋| 24小时日本韩国高清免费| 男男gvh肉在线观看免费|