Javaはapacheのcommonパケットを介してemailを送信する
5317 ワード
シーン:
メールの送信
依存関係:
実装:
commons-emailベース
SimpleEmail:一般テキスト形式メール
MultipartEmail:添付ファイル+通常テキスト形式メール
HtmlEmail:MultipartEmailのサブクラス、添付ファイル+HTML形式メール
コード:
メールの送信
依存関係:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
実装:
commons-emailベース
SimpleEmail:一般テキスト形式メール
MultipartEmail:添付ファイル+通常テキスト形式メール
HtmlEmail:MultipartEmailのサブクラス、添付ファイル+HTML形式メール
コード:
private static final Logger logger = Logger.getLogger(EmailTest.class.getName());
private static final String emailServer = "smtp.163.com";
private static final String emailServerUserEmail = "[email protected]";
private static final String emailServerUserName = "xx";
private static final String emailServerUserPassword = "pwd";
private static final String emailEncoding = "utf-8";
public void testSimpleEmail(String toEmail, String toName, String subject, String msg) {
try {
SimpleEmail email = new SimpleEmail();
email.setHostName(EmailTest.emailServer);
email.setAuthentication(EmailTest.emailServerUserName,
EmailTest.emailServerUserPassword);
email.setCharset(EmailTest.emailEncoding);
email.setSubject("testSimpleEmail:"+subject);
email.setMsg(msg);
email.setFrom(EmailTest.emailServerUserEmail);
email.addTo(toEmail, toName);
String messageId = email.send();
logger.info("*testSimpleEmail:" + messageId);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public void testMultiPartEmail(String toEmail, String toName, String attachmentPath,
String subject, String msg) {
String attachmentText = FilenameUtils.getName(attachmentPath);
try {
EmailAttachment emailAttachment = new EmailAttachment();
emailAttachment.setPath(attachmentPath);
emailAttachment.setDisposition(EmailAttachment.ATTACHMENT);
emailAttachment.setDescription(attachmentText);
emailAttachment.setName(MimeUtility.encodeText(attachmentText));
MultiPartEmail email = new MultiPartEmail();
email.setHostName(emailServer);
email.setAuthentication(EmailTest.emailServerUserEmail,
EmailTest.emailServerUserPassword);
email.setCharset(emailEncoding);
email.addTo(toEmail, toName);
email.setFrom(EmailTest.emailServerUserEmail, EmailTest.emailServerUserName);
email.setSubject("testMultiPartEmail:"+subject);
email.setMsg(msg);
email.attach(emailAttachment);
String messageId = email.send();
logger.info("*testMultiPartEmail:" + messageId);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public void testHtmlEmail(String toEmail, String toName, String attachmentPath,
String subject, String msg){
String attachmentText = FilenameUtils.getName(attachmentPath);
try {
EmailAttachment emailAttachment = new EmailAttachment();
emailAttachment.setPath(attachmentPath);
emailAttachment.setDisposition(EmailAttachment.ATTACHMENT);
emailAttachment.setDescription(attachmentText);
emailAttachment.setName(MimeUtility.encodeText(attachmentText));
HtmlEmail email = new HtmlEmail();
email.setHostName(emailServer);
email.setAuthentication(EmailTest.emailServerUserName, EmailTest.emailServerUserPassword);
email.setCharset(emailEncoding);
email.addTo(toEmail);
email.setFrom(EmailTest.emailServerUserEmail, EmailTest.emailServerUserName);
email.setSubject("testHtmlEmail:"+subject);
email.attach(emailAttachment);
email.setHtmlMsg(msg);
String messageId = email.send();
logger.info("*testHtmlEmail:" + messageId);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
EmailTest test = new EmailTest();
String attachmentPath = "G:/hexun.rar";
String subject = " ";
String msg = "hi <br/> ! <br/> !";
String toEmail = "[email protected]";
String toName = "toemail";
try {
test.testHtmlEmail(toEmail, toName, attachmentPath, subject, msg);
test.testMultiPartEmail(toEmail, toName, attachmentPath, subject, msg);
test.testSimpleEmail(toEmail, toName, subject, msg);
} catch (Exception e) {
e.printStackTrace();
}
}