JavaMail smtp.mail.yahoo.co.jp
お世話になります。
JavaMail1.4を用いて、
自作プログラム内でメール送信を行おうとしているのですが、
エラーが返ってきてしまいます。
以下エラー内容です。
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.mail.yahoo.co.jp", port 25, isSSL false
javax.mail.MessagingException: Could not connect to SMTP host: smtp.mail.yahoo.co.jp, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1227)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:322)
at javax.mail.Service.connect(Service.java:258)
at javax.mail.Service.connect(Service.java:137)
at javax.mail.Service.connect(Service.java:86)
at javax.mail.Transport.send0(Transport.java:150)
at javax.mail.Transport.send(Transport.java:80)
at partsPackage.MailTransfer.send(MailTransfer.java:135)
at partsPackage.Tester.main(Tester.java:14)
設定が悪いのか、
サーバーの指定等が悪いのか検討が付かない状況です。
ソースは
final String username = "○○○○";
final String password = "○○○○";
final String from_name = "○○○○";
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Session session = null;
MimeMessage mimeMessage = null;
String charset = "UTF8";
String sendTo = null;
String title = null;
String contents = null;
public MailTransfer(){}
public MailTransfer(String charset){this.charset=charset;}
boolean isConnected(){return session!=null;}
public boolean hasMessage(){return mimeMessage!=null;}
public boolean hasDestination(){return sendTo!=null;}
public boolean hasTitle(){return title!=null;}
public boolean hasText(){return contents!=null;}
void connect(){
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", "smtp.mail.yahoo.co.jp");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "25");
props.setProperty("mail.smtp.socketFactory.port", "25");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
session = Session.getInstance(props, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
public void create_mail(){
System.out.println("送信メール作成");
if(!isConnected())connect();
if(hasMessage())return;
mimeMessage=new MimeMessage(session);
try {
// 送信元メールアドレスと送信者名を指定
mimeMessage.setFrom(new InternetAddress(username+"@yahoo.co.jp",from_name,charset));
// メールの形式を指定
mimeMessage.setHeader("Content-Type","text/html");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("送信メール作成完了");
}
よろしくお願い致します。
お礼
ご連絡ありがとうございます。 IISとSMTPは別ですよね。SMTPのサービスを起動し CreateObject("CDONTS.NewMail")でSMTPからメールが流せたと思うのですが。 もう一台あるNT4.5serverのIIS+SMTPでは実行できています。 スマートホスト等を設定したのですが。 ただ、原因不明でワトソン博士が出る場合もあるので この方法は諦めたいと思います。 フリーのソフトでメール送信処理をさせたいと思います。