Spring提供了一個傳送郵件的抽象層,使傳送郵件實現非常簡單。下面程式碼需要mail.jar包,如果伺服器需要認證,必須加入如下加粗程式碼:
原始檔:SendMail.java:
package mail;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import java.util.Date;
/**
* @author chrischen
*/
public class SendMail {
//郵件傳送器
public static String Sender(String subject, String msg, String sendTo, String fromMail, String user, String pw, String fromName, String protocol, String host, String port){
try{
final String username = user;
final String pass = pw;
//需要認證
Properties props = new Properties();
props.put(“mail.smtp.host”, host);
props.put(“mail.smtp.auth”, “true”);
props.put(“mail.transport.protocol”, protocol);
props.put(“mail.from”, fromMail);
//建立傳送器
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setHost(host);
sender.setUsername(username);
sender.setPassword(pass);
//建立訊息
MimeMessage message = sender.createMimeMessage();
message.addHeader(“X-Mailer”, “Java Mailer”);
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setTo(sendTo);
helper.setFrom(fromMail, fromName);
helper.setSubject(subject);
helper.setText(msg);
helper.setSentDate(new Date());
//開始傳送
sender.setJavaMailProperties(props);
sender.send(message);
}catch(Exception e){
System.out.println(“Error:” + e);
return “Failure”;
}
return “Success”;
}
//測試
public static void main(String args[])throws Exception
{
String subject = “測試郵件”;//標題
String sendTo = “[email protected]”;//接收者郵件
String fromMail = “[email protected]”;//傳送者郵件
String user = “[email protected]”;//傳送者使用者
String pw = “password”;//傳送者郵件密碼
String fromName = “Chen”;//傳送者名字
String protocol = “smtp”;//協議
String host = “smtp.my.com”;//傳送主機
String port = “25”;//埠
String msg = “簡單郵件傳送。”;//傳送內容
String ret = Sender(subject, msg, sendTo, fromMail, user, pw, fromName, protocol, host, port);
System.out.println(“郵件傳送結果:” + ret);
}
}
使用MimeMessageHelper,可以實現Multipart email,方便新增附件和內嵌資源等。