Javaでメールを送信するこの機能に慣れていません。パスワードをリセットするための電子メールの送信中にエラーが発生します。解決策を教えてください。
以下は私のコードです:
public synchronized static boolean sendMailAdvance(String emailTo, String subject, String body)
{
String host = AppConfigManager.getProperty("SENDER-EMAIL-SMTP-ADDRESS");
String userName = AppConfigManager.getProperty("SENDER-EMAIL-SMTP-USERNAME");
String password = AppConfigManager.getProperty("SENDER-EMAIL-SMTP-PASSWORD");
String port = AppConfigManager.getProperty("SENDER-EMAIL-SMTP-PORT");
String starttls = AppConfigManager.getProperty("SENDER-EMAIL-SMTP-STARTTLS");
String socketFactoryClass = AppConfigManager.getProperty("SENDER-EMAIL-SMTP-SOCKET-CLASS");
String fallback = AppConfigManager.getProperty("SENDER-EMAIL-SMTP-ALLOW-FALLBACK");
try
{
java.util.Properties props = null;
props = System.getProperties();
props.put("mail.smtp.user", userName);
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.debug", "true");
if(!"".equals(port))
{
props.put("mail.smtp.port", port);
props.put("mail.smtp.socketFactory.port", port);
}
if(!"".equals(starttls))
props.put("mail.smtp.starttls.enable",starttls);
if(!"".equals(socketFactoryClass))
props.put("mail.smtp.socketFactory.class",socketFactoryClass);
if(!"".equals(fallback))
props.put("mail.smtp.socketFactory.fallback", fallback);
Session session = Session.getDefaultInstance(props, null);
session.setDebug(true);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(userName));
msg.setSubject(subject);
msg.setText(body, "ISO-8859-1");
msg.setSentDate(new Date());
msg.setHeader("content-Type", "text/html;charset=\"ISO-8859-1\"");
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(emailTo));
msg.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, userName, password);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
return true;
}
catch (Exception mex)
{
mex.printStackTrace();
return false;
}
}
次のエラーをスローします。
DEBUG: setDebug: JavaMail バージョン 1.4.1ea-SNAPSHOT
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
デバッグ SMTP: useEhlo true、useAuth true
DEBUG SMTP: ホスト "smtp.gmail.com"、ポート 465、isSSL に接続しようとしています false 220 mx.google.com ESMTP m4sm5929870pbg.38 - gsmtp
DEBUG SMTP: ホスト「smtp.gmail.com」に接続、ポート: 465
EHLOファチン
250-mx.google.com [175.139.198.14]
250サイズ 35882577
250-8BITMIME
250-AUTH ログイン プレーン XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN
250 拡張ステータスコード
250チャンキング
DEBUG SMTP: 拡張機能「SIZE」、引数「35882577」が見つかりました
DEBUG SMTP: 拡張子 "8BITMIME"、arg "" が見つかりました
DEBUG SMTP: 拡張子「AUTH」、引数「LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN」が見つかりました
DEBUG SMTP: 拡張子 "ENHANCEDSTATUSCODES"、引数 "" が見つかりました
DEBUG SMTP: 拡張子 "CHUNKING"、arg "" が見つかりました
DEBUG SMTP: 認証を試みます
認証ログイン
334 VXNlcm5hbWU6
YWNjb3VudEBibG9vbWluZy5jb20ubXk=
334 ぐんぐん
Ymxvb21pbmc= 535-5.7.8 ユーザー名とパスワードが受け入れられません。詳細については、535 5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257をご覧ください。
m4sm5929870pbg.38 - gsmtp
[STDOUT] javax.mail.AuthenticationFailedException
[STDOUT] at javax.mail.Service.connect(Service.java:319)
[STDOUT] at javax.mail.Service.connect(Service.java:169)
[標準出力] com.vlee.util.mail.SendMail.sendMailAdvance (SendMail.java:283) で
[標準出力] com.vlee.servlet.ecommerce.DoMemberLogin.fnSendPwd (DoMemberLogin.java:251) で
[標準出力] com.vlee.servlet.ecommerce.DoMemberLogin.doPost (DoMemberLogin.java:72) で