2011-03-29 28 views
3

私はこのコードでapacheのジェームズを使用して電子メールを送信しようとしていますがはメール送信できません - javax.mail.NoSuchProviderException:SMTP

public static void main(String[] args) 
{ 

    String user = "sumit"; // Newly created user on JAMES 
    String password = "sumit"; // user password 

    String fromAddress = "[email protected]"; // [email protected] 
    String toAddress = "[email protected]"; 

    // Create a mail session 
    Properties properties = new Properties(); 
    properties.put("mail.smtp.host", "localhost"); 
    properties.put("mail.smtp.port", "25"); 
    properties.put("mail.smtp.username", user); 
    properties.put("mail.smtp.password", password); 
    Session session = Session.getDefaultInstance(properties, null); 

    try 
    { 
     Message message = new MimeMessage(session); 
     message.setFrom(new InternetAddress(fromAddress)); 
     message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddress)); 

     message.setSubject("Email from our JAMES Server"); 
     message.setText("Luke, I'm your father!!"); 
     Transport.send(message); 

     System.out.println("Email sent successfully"); 
    } 
    catch (MessagingException e) 
    { 
     e.printStackTrace(); 
    } 
} 

私は

javax.mail.NoSuchProviderException: smtp 
    at javax.mail.Session.getService(Session.java:784) 
    at javax.mail.Session.getTransport(Session.java:720) 
    at javax.mail.Session.getTransport(Session.java:660) 
    at javax.mail.Session.getTransport(Session.java:640) 
    at javax.mail.Session.getTransport(Session.java:697) 
    at javax.mail.Transport.send0(Transport.java:192) 
    at javax.mail.Transport.send(Transport.java:124) 
    at mail.Main.main(Main.java:44) 

を助けてください、次の例外を取得しています
+0

をSMTPするトランスポートプロトコルを設定しますプロパティの設定が欠落しているように私には思える25'?ジェームズをコンソールから起動するのはどうですか? './james console'または' ./james help'(少なくともJames3の場合) – Thufir

答えて

1

一部に基づいてgoogling ...

あなたの問題は、クラスパスの問題。

クラスパスにmail.jarとactivation.jarの両方のバージョンが1つだけあることを確認してください。

1

あなたがのtelnet localhostの `から何が起こるか

properties.put("mail.transport.protocol", "smtp"); 
関連する問題