这是一个发送邮件的简单例子,可以上传附件
SimpleMail类:
package com.zsy.sun;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
/**
* 通过JavaMail发送一封简单的邮件,以及增加附件连接
* @author zsy
* @date 2015年1月19日 下午3:41:48
*/
public class SimpleMail {
//主机
private String host = "";
private String user = "";
private String password = "";
private static Properties props = new Properties();
public String attachmentPath = "C:/Users/Administrator/Desktop/活动1.png";
public static void main(String[] args) {
SimpleMail sm = new SimpleMail();
sm.setHost("smtp.163.com"); // 指定要使用的邮件服务器
sm.setAccount("xxxxx@163.com", "**********"); // 指定帐号和密码
sm.send("xxxxx@163.com", "xxxxx@qq.com", "标题", "HelloWold!");
}
public void setHost(String host) {
this.host = host;
}
public void setAccount(String user, String password) {
this.user = user;
this.password = password;
}
/**
*
* @param from 发件人地址
* @param to 收件人地址
* @param subject 邮件主题
* @param content 邮件内容
*/
public void send(String from, String to, String subject, String content) {
props.put("mail.smtp.host", "smtp.163.com");
props.put("mail.smtp.auth", true);
try {
//提供配置以及初始化JavaMail,不与邮件服务器交互
Session mailSession = Session.getDefaultInstance(props);
//创建需要传递的消息
Message message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from)); // 发件人
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 收件人
message.setSubject(subject); // 邮件主题
//message.setText(content); 邮件内容
/*
* 附件上传
*/
MimeBodyPart mbp1 = new MimeBodyPart();
FileDataSource fds2 = new FileDataSource(attachmentPath);
DataHandler dh2 = new DataHandler(fds2);
mbp1.setDataHandler(dh2);
mbp1.setFileName(MimeUtility.encodeText(fds2.getName()));
MimeBodyPart mbp2 = new MimeBodyPart();
mbp2.setContent(content.toString(), "text/html;charset=gb2312");
//增加邮件内容
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
message.setContent(mp);
message.saveChanges();
/*
* Session根据协议类型(stmp、pop3等)和邮件操作方式(传输和存储)这两个信息就可以定位到一个实例类上。
* 比如,指定stmp协议和transport类型后,
* Session就会使用com.sun.mail.smtp.SMTPTransport实现类创建一个Transport实例,
* 而指定pop3协议和store类型时,则会使用com.sun.mail.pop3.POP3Store实例类创建一个Store实例。
*/
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch(Exception e) {
System.out.println(e);
}
}
/*private static Properties createProperties(){
InputStream is = null;
try {
is = SimpleMail.class.getResourceAsStream("/com/zsy/config/mail.properties");
props.load(is);
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return props;
}*/
}
更详细的参数以及相关内容,请参考【zapldy】大大的文章,JavaMail发送和接收邮件:http://blog.csdn.net/zapldy/article/details/3971579