「Javaでメール送信処理」
JavaでMail送信するためのサンプルプログラム。JavaMailだと正直コードが分かりづらい気がするので、Commons-emailを使うようにしています。
必要なライブラリ
Javaサンプル
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Iterator; import javax.mail.MessagingException; import javax.mail.internet.AddressException; import javax.mail.internet.MimeUtility; import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.SimpleEmail; /** * メール送信クラス */ public class MailSample { private HashMap toAddress = new HashMap(); private String fromAddress = null; private String fromName = null; private String charset = "UTF-8"; private String subject = null; private String content = null; /** * @param args * @throws EmailException * @throws IOException * @throws IOException * @throws MessagingException * @throws AddressException * @throws EmailException */ public static void main(String[] args) throws IOException, EmailException { // TestCode MailSample mail = new MailSample(); mail.setContent("テストメール"); mail.setFromAddress("xxxxx@xxxxx", "送信元名"); mail.addToAddress("yyyyy@yyyyy", "送信先名"); mail.setSubject("テストメール"); mail.sendMail(); } public void sendMail() throws IOException, EmailException { SimpleEmail email = new SimpleEmail(); email.setHostName("mailserver"); email.setAuthentication("username","password"); // 認証が必要な場合 email.setCharset(this.charset); email.setSubject(this.subject); email.setContent(this.content, "text/plain; charset=" + this.charset); setFromAddress(email); setToAddress(email); email.send(); } /** * 送信先を追加する。 * @param address 送信先アドレス * @param name 送信先名 */ public void addToAddress(String address, String name) { toAddress.put(address, name); } /** * 送信元メールアドレス * @param address * @param name */ public void setFromAddress(String address, String name) { this.fromAddress = address; this.fromName = name; } /** * デフォルトのキャラクターセット(UTF-8)を変更します。 * @param charset */ public void setCharset(String charset) { this.charset = charset; } /** * 件名を設定する。 * @param subject */ public void setSubject(String subject) { this.subject = subject; } /** * 本文を設定する。 * @param content */ public void setContent(String content) { this.content = content; } private void setToAddress(Email email) throws EmailException, UnsupportedEncodingException { for (Iterator it = toAddress.keySet().iterator(); it.hasNext();) { String address = (String) it.next(); String name = (String) toAddress.get(address); if (name != null && !name.equals("")) { email.addTo(address, MimeUtility.encodeText(name, this.charset, "B")); } else { email.addTo(address); } } } private void setFromAddress(SimpleEmail email) throws UnsupportedEncodingException, EmailException { if (this.fromName != null && !this.fromName.equals("")) { email.setFrom(this.fromAddress, MimeUtility.encodeText(this.fromName, this.charset, "B")); } else { email.setFrom(this.fromAddress); } } }