1

如果我想通过我的应用程序使用 Javamail API 在任意两个外部电子邮件地址之间发送电子邮件,例如gmail->yahooyahoo->gmail或任何其他电子邮件帐户,而不使用身份验证机制,我应该如何配置mail.smtp.host属性?

配置 javamail 属性以在任意两个外部电子邮件地址之间发送电子邮件的正确方法是什么?

发送邮件的示例代码如下:

Session session = Session.getDefaultInstance(new Properties(),null);
MimeMessage message = new MimeMessage(session);   
message.setFrom(new InternetAddress("test@gmail.com"));  
InternetAddress[] toAddress = {new InternetAddress("test@yahoo.com")};  
message.setRecipients(Message.RecipientType.TO, toAddress);  
message.setSubject("test mail");  message.setText("test body");  
Transport.send(message);
4

2 回答 2

0

这是给gmail的,试试吧。你需要mail.jar

public static void main(String[] args) {
    final String username = "yourId@gmail.com";
    final String password = "your-pwd";

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("yourId@gmail.com"));
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse("some-mail@gmail.com"));
        message.setSubject("A Mail Subject");
        message.setText("Hey I'm sending mail using java api");

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }

}

编辑 :

下载Java 邮件 Api 的链接以及mail.jar

于 2012-12-03T18:33:59.590 回答
0

大多数公共邮件服务器都需要身份验证。如果您想在没有身份验证的情况下执行此操作,则需要运行自己的邮件服务器。

于 2012-12-03T18:25:25.330 回答