1

javamail API を使用して電子メールを送信する方法を学習しています。SMTP サーバーを使用して簡単な電子メールを送信するために必要なプロパティと手順を作成しました。次のコードを使用しています。

     Properties props=new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.socketFactory.port", "465");
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.port", "465");

    Session session= Session.getDefaultInstance(props, new javax.mail.Authenticator() {

    protected PasswordAuthentication getpPasswordAuthentication(){
    return new  PasswordAuthentication("myemailadresse@gmail.com", "password");
    }


    });
    try{
        Message message=new MimeMessage(session);
        message.setFrom(new InternetAddress("myemail"));    
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recepientemailadresse"));
        message.setSubject("the java mail test");
        message.setText("Guess what brother the java mail is working correctly");
        Transport.send(message);
         JOptionPane.showMessageDialog(rootPane, "message sent");
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(rootPane, e);
         e.printStackTrace();
    }

そして、次のことを言及する例外が発生したランタイム:

    javax.mail.AuthenticationFailedException: failed to connect, no password specified?
at javax.mail.Service.connect(Service.java:329)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at transfer.Maitest.jButton1ActionPerformed(Maitest.java:96)
at transfer.Maitest.access$000(Maitest.java:20)
at transfer.Maitest$1.actionPerformed(Maitest.java:45)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)

何を見逃したのか教えてください??

4

2 に答える 2

1

まず、JavaMail のよくある間違いに関する FAQ エントリをお読みください。それらを修正した後、Gmail への接続方法を説明するこの JavaMail FAQ エントリをお読みください。それでもうまくいかない場合は、JavaMail FAQ のデバッグに関するエントリが役に立ちます。

于 2012-10-11T20:45:41.710 に答える
0

電子メール サーバーが認証を必要とせず、パスワードを提供したくない場合 (たとえば、テスト環境)、これを試してください。

props.put("mail.smtp.auth", "false");
于 2013-08-21T11:48:23.213 に答える