1

認証メカニズムを使用せずに、gmail->yahooまたはyahoo->gmailなどの任意の2 つの外部電子メール アドレス間で電子メールを送信する場合、Javamail API を使用するアプリケーションを通じて、どのようにmail.smtp.hostプロパティを設定すればよいですか?

任意の 2 つの外部電子メール アドレス間で電子メールを送信するための 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

ほとんどのパブリック メール サーバーでは認証が必要です。認証なしで実行したい場合は、独自のメール サーバーを実行する必要があります。

于 2012-12-03T18:25:25.330 に答える
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 に答える