私の会社のサーバを使用してメールを送信しようとしていますが、何かが動作しません。AndroidのJavaMailがExchangeサーバでメールを送信する
private Properties _setProperties() {
_port = 443;
_sport = 443;
Properties props = (Properties) System.getProperties().clone();
props.put("mail.smtps.host", _host);
props.put("mails.debug", "true");
props.put("mail.smtps.auth", "true");
props.put("mail.smtps.port", _port);
props.put("mail.smtps.ssl.port", "true");
props.put("mail.smtps.ssl.socketFactory.port", _sport);
props.put("mail.smtps.ssl.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtps.ssl.socketFactory.fallback", "false");
return props;
}
public boolean send() throws Exception {
Properties props = _setProperties();
_user = "email";
_pass = "pass";
Session session = Session.getInstance(props, this);
session.setDebug(true);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(_user));
msg.setRecipients(MimeMessage.RecipientType.TO, "mailTO");
msg.setSubject("SUBJECT");
msg.setSentDate(new Date());
msg.setText("TEXT");
// send email
Transport transport = session.getTransport("smtps");
transport.connect();
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
return true;
}
デバッグには、以下を示しています。
DEBUG: setDebug: JavaMail version 1.5.5
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle]
DEBUG SMTP: need username and password for authentication
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "companyServer", port 443, isSSL true
が接続しようとし続け、すべての答えを与えるものではありません。 mail.smtps.writetimeoutを設定すると、java.net.SocketExceptionが返されます。ソケットが閉じられました
ご存じですか? :S
[一般的なJavaMailの間違い](https://javaee.github.io/javamail/FAQ#commonmistakes)を修正し、公式の[Android用JavaMail](https://javaee.github)を使用していることを確認してください。 io/javamail/Android)にあります。次に、これらの[接続デバッグのヒント](https://javaee.github.io/javamail/FAQ#condebug)に従ってください。 –