下面是全部的源代码:
SendMail.java
package com.dsh.javamail;
import java.util.Properties;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
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;
/**
* 練習使用java mail發送電子郵件
* @author:DuanShiHui
* @company:oddTech
* @time:2011-12-1 下午12:35:43
*/
public class SendMail {
private String host = "smtp.163.com"; // 使用smtp服务器
private String user = "ly5423ems"; // 用户名
private String pwd = ""; // 密码
private String from = "test@163.com"; // 发件人地址
private String to = "test@qq.com"; // 收件人地址
private String subject = "java Mail郵件發送測試"; // 邮件标题
/**
* @param args
*/
public static void main(String[] args) {
SendMail sm=new SendMail();//實例化一個對象
sm.setAddress("test@163.com", "test@qq.com", "java Mail郵件發送測試","");
sm.sendToMail("這是我用來測試的,請不要回覆");
}
/**
* 設置有地址之類的信息
* @param from
* 發送者的地址
* @param to
* 接收者的地址
* @param subject
* 郵件主題
* @param pwd
* 發件人的郵箱密碼
*/
public void setAddress(String from, String to, String subject,String pwd){
this.from = from;
this.to = to;
this.subject = subject;
this.pwd=pwd;
}
/**
* 郵件的發送
* @param text
* 發送的內容
*/
public void sendToMail(String text){
Properties props = new Properties();
// 設置發送郵件的郵件服務器的屬性(這裡使用的是163的smtp服務器)
props.put("mail.smtp.host", host);
// 需要經過授權,也就是有用戶名和密碼的校驗,這樣才能通過驗證(一定要有這條)
props.put("mail.smtp.auth", "true");
// 用剛剛設置好的props對象構建一個session
Session session = Session.getDefaultInstance(props);
//這句話是爲了在發送過程中在控制台顯示發送郵件的過程
session.setDebug(true);
// 用session為參數定義消息對象
MimeMessage message = new MimeMessage(session);
try {
// 加載發件人地址
message.setFrom(new InternetAddress(from));
// 加載收件人地址
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
to));
// 加載主題
message.setSubject(subject);
// 向multipart對象中添加郵件的各個部份內容,包括文本內容和附件
Multipart multipart = new MimeMultipart();
// 設置郵件的文本內容
BodyPart contentPart = new MimeBodyPart();
contentPart.setText(text);
multipart.addBodyPart(contentPart);
// 將multipart對象放到message中
message.setContent(multipart);
// 保存郵件
message.saveChanges();
// 發送郵件
Transport transport = session.getTransport("smtp");
// 鏈接服務器的郵箱
transport.connect(host, user, pwd);
//把郵件發送出去
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
要想实现更加丰富的功能,请参照javaMail 的api文档