快捷搜索:

JavaMail操作的总结

在收拾网友的文章的时刻,发明一个javamail的总结,特此感谢the_east_key,并且公布给大年夜家,盼望对大年夜家有做赞助,全文如下:

本文章对:

发送通俗邮件,吸收通俗邮件

发送带有附件的邮件,接管带有附件的邮件

发送html形式的邮件,吸收html形式的邮件

[b[发送带有图片的邮件[/b]等做了一个总结。

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";

//此段代码用来发送通俗电子邮件

void jButton1_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);

//设置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());//设置邮件发送日期

Address address = new InternetAddress(mail_from,"sunxiaoming");

message.setFrom(address); //设置邮件发送者的地址

//假如要对邮件发送者进行多个参数的设置,可以用以下语句

// 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);//发送邮件

/* // 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(); //获取系统变量

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;ihello"+"click me please!";

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);

}

}

//此段代码用来发送带有图片的邮件

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 = ""+"";//加入图片

messageBodyPart.setContent(htmlText,"text/html");

//道理同发送附件一样,将邮件当作有多个部分组成的,先设置每一个部分,然后再整个将它们合起来即可。

//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[i].getFrom()[0]).getPersonal();

String out_from_address = ((InternetAddress)message[i].getFrom()[0]).getAddress();

System.out.println("From:"+out_from_person+" ");

System.out.println("Address:"+out_from_address+" ");

String out_subject = message[i].getSubject();

System.out.println("Subject:"+out_subject+" ");

//获取邮件的信息,并且对其每一部分进行操作

Part messagePart = message[i];

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[i].setFlag(Flags.Flag.DELETED,true);

}

folder.close(true);

store.close();

}

catch(Exception ej2)

{

System.out.println(ej2);

}

}

您可能还会对下面的文章感兴趣: