【问题标题】:Messages sent via yahoo using javamail api not going to sent messages folder通过 yahoo 使用 javamail api 发送的消息不会发送到已发送的消息文件夹
【发布时间】:2016-05-30 14:21:06
【问题描述】:

当我使用 javamail api 从我的 yahoo 地址发送消息时,它们不会转到已发送的文件夹。有什么问题?这是我的源代码:

public void doSendYahooMail(){
    from = txtFrom.getText();
    password= new String(txtPassword.getPassword());
    to = txtTo.getText();
    subject = txtSubject.getText();
    email_body = jTextArea1.getText();

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

    Session session = Session.getInstance(props,
            new javax.mail.Authenticator(){
                @Override
                protected PasswordAuthentication getPasswordAuthentication(){
                    return new PasswordAuthentication(from, password);
                }
    }
    );
    try {
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
        message.setSubject(subject);
        message.setText(email_body);
        Transport.send(message);

        JOptionPane.showMessageDialog(this, "Message Sent!","Sent",JOptionPane.INFORMATION_MESSAGE);

    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, e.toString());
    }
}

我需要做哪些修改

【问题讨论】:

    标签: jakarta-mail


    【解决方案1】:

    如果您想在已发送邮件文件夹中复制一份,您需要自己将其放在那里。有关示例,请参见 JavaMail sample program msgsend.java

    另外,您需要在程序中修复这些common JavaMail mistakes

    【讨论】:

    • 感谢@BillShannon,尤其是常见的 Javamail 错误
    • 嗨,Bill,我查看了 Javamail 示例程序 msgsend.java,但最后一部分(阅读邮件正文直到 EOF)似乎给我带来了问题。如何将其合并到上述源代码中
    • 你不需要那个。 collect 方法只是获取将包含在消息正文中的数据的一种方法。您可以以任何您想要的方式创建消息。创建并发送消息后,您只需遵循显示如何保存刚刚发送的消息的代码块。连接到商店,如有必要,创建文件夹,将消息附加到文件夹。
    • 嗨,Bill,我正在查看常见的 JavaMail 错误,发现您不一定需要使用身份验证器来提供用户名和密码。什么情况下需要使用 Authenticator?
    • 您永远不会要求使用身份验证器。验证器适用于您需要“按需”提供用户名和密码的情况(例如,当使用 Swing 对话框提示用户输入信息时),而不是用户名和密码已预先设置的情况。已配置,可以只传递给 connect 或 send 方法。
    猜你喜欢
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多