1

JavamailアプリケーションをJamesサーバーに接続しようとしていますが、

javax.mail.MessagingException:SMTPホスト:localhost、ポート:4555に接続できませんでした。ネストされた例外は次のとおりです。java.net.SocketException:無効な引数:接続

これが私にとって少し問題を引き起こしているコードです:

import java.security.Security;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class mail  {

public static void main(String[] argts)
{
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());


       String mailHost = "your.smtp.server";



        String to = "blue@localhost";



        String from = "red@localhost";
        String subject = "jdk";
        String body = "Down to wind";

        if ((from != null) && (to != null) && (subject != null)  && (body != null)) // we have mail to send
        {

        try {


            //Get system properties
            Properties props = System.getProperties();


            props.put("mail.smtp.user", "red");
            props.put("mail.smtp.host", "localhost");
            props.put("mail.debug", "true");
            props.put("mail.smtp.port", 4555);


            props.put("mail.smtp.socketFactory.port", 4555);
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.fallback", "false");

            Session session = Session.getInstance(props,null);


            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.setRecipients(Message.RecipientType.TO, new InternetAddress[] { new InternetAddress(to) });
            message.setSubject(subject);
            message.setContent(body, "text/plain");
            message.setText(body);
            Transport.send(message);


            System.out.println("<b>Thank you.  Your message to " + to + " was successfully sent.</b>");

        } catch (Throwable t) {
           System.out.println("Teri maa ki "+t);
        }


        }

    }




}

前もって感謝します。:)

4

1 に答える 1

1
        props.put("mail.smtp.host", "localhost");
        props.put("mail.smtp.port", 4555);

これらの 2 行により、コードはローカルホスト (自分のマシン?) のポート 4555 に接続されます。問題の SMTP サーバーは他のホストで実行されていると思います。ホスト名を最初のプロパティに入れ、正しいポート (通常は 25) を 2 番目のプロパティに入れれば、うまくいきます。

それでも問題が解決しない場合は、セットアップの詳細を提供してください。SMTP サーバーを実行しているホスト、リッスンしているポート、SSL を使用していますか (コードによると、そうですか?)、クライアントを実行している場所、. ..

于 2009-09-27T00:28:16.223 に答える