このプログラムは、最初にsmtp.rediffmail.com
に接続して電子メールの送信を試みます。コンパイル時エラーまたはコンパイル時例外はありません。しかし、次のプログラムを実行しようとすると、次の例外が生成されます。javax.mail.SendFailedException:無効なアドレス(Rediffmailを使用してemalを送信しようとしているとき)
javax.mail.SendFailedException:無効なアドレス。 ネストされた例外は次のとおりです。 com.sun.mail.smtp.SMTPAddressFailedException:421認証に失敗しました。私は例外が何であるかを把握することはできませんし、なぜ私はこの例外を取得しています最初の
やっGETメッセージにより認証してください。
ここに完全なプログラムがあります。これは私が試みたことですTLS rediffmailサーバーとの接続。
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
class rediff {
public static void main(String args[]) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.rediffmail.com");
props.put("mail.stmp.user", "from");
//To use TLS
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.password", "password");
Session session = Session.getDefaultInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
String username = "from";
String password = "password";
return new PasswordAuthentication("from", "password");
}
});
String to = "[email protected]";
String from = "[email protected]";
String subject = "Testing...";
MimeMessage msg = new MimeMessage(session);
try {
msg.setFrom(new InternetAddress(from));
msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(to));
msg.setSubject(subject);
msg.setText("rediff program working...!");
Transport transport = session.getTransport("smtp");
transport.send(msg);
System.out.println("fine!!");
} catch(Exception exc) {
System.out.println(exc);
}
}
}
なぜこの例外が発生しますか?あたりとして
この種のオプションはありません –
@grassPro ... -1を置いていて、フィードバックやコメントを提供していない理由は何ですか?ちょっとばかげているようです。 – sdolgy