JavaでGmail送信
今回はGmailでメール送信をやります。
サンプル
package mvnTest;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.mail.smtp.SMTPTransport;
public class MailTest {
public static void main(String[] argv) {
mailSend("タイトル", "本文", "送信先メールアドレス", "送信元メールアドレス", "パスワード");
}
public static void mailSend(String title, String text, String toAddress,
String fromAddress, String password) {
try {
// プロパティの設定
Properties props = System.getProperties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props);
Message msg = new MimeMessage(session);
// 送信元メールアドレスのセット
msg.setFrom(new InternetAddress(fromAddress));
// 送信先メールアドレスのセット
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(toAddress, false));
// メールタイトル
msg.setSubject(title);
// メール本文
msg.setText(text);
// 送信日
msg.setSentDate(new Date());
// メール送信
SMTPTransport t = (SMTPTransport) session.getTransport("smtp");
try {
t.connect("smtp.gmail.com", fromAddress, password);
t.sendMessage(msg, msg.getAllRecipients());
} finally {
t.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
そのまま実行すると以下のようなエラーがでます。
javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbsR
534-5.7.14 w7FsVryxIA7b8wLa7j09PT7UgYnLDEqXvTT0QNJPFrXo9pH-5Y_X-6bohOGpx1e8H1hzVu
534-5.7.14 QT_8odExxaw48Xb2VbWQIPImlGLVz3TI3ppJ8yfHCuWA68aKYQ7k5Z54ACpVnBnMr6TrbC
534-5.7.14 a4QYXQDRAELd121lJNZILFCX6TAgc0ovbYFuZJPnc1abGx9Xwey7iv_sF9ea-PV1l0PFfi
534-5.7.14 hMayGqC96Q_MkVhXfzeK0w9bybXTc> Please log in via your web browser and
534-5.7.14 then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/answer/78754 m87sm6069511pfi.122 - gsmtp
at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at mvnTest.MailTest.mailSend(MailTest.java:48)
at mvnTest.MailTest.main(MailTest.java:15)
ブラウザで以下のURLを開いて、安全性の低いアプリの許可を有効に変更すると送信できるようになります。
(セキュリティは甘くなるので自己責任でお願いします。)
https://myaccount.google.com/security
ページのトップへ戻る