【问题标题】:Sending an Email Using Java使用 Java 发送电子邮件
【发布时间】:2009-11-23 17:31:29
【问题描述】:
 try{
        Properties props = new Properties();
        props.put("mail.smtp.host", "ipc-smtp.bits-pilani.ac.in");
        Session sess = Session.getInstance(props, null);
        sess.setDebug(true);
        Message msg = new MimeMessage(sess);
        InternetAddress addressFrom = new InternetAddress("mymail@gmail.com");
        msg.setFrom(addressFrom);
        msg.setRecipient(Message.RecipientType.TO, new InternetAddress("mymail@gmail.com"));
        msg.addHeader("MyHeaderName", "myHeaderValue");
        msg.setSubject("Test");
        msg.setContent("Yippe", "text/plain");
        Transport.send(msg);
        }catch(Exception exp){
           exp.printStackTrace();
        }

错误是 javax.mail.MessagingException: 554 The mail was blocked due to zen-spamhaus RBL action

这是我大学的 smtp 服务器。

【问题讨论】:

  • 这是一个垃圾邮件问题,它与java发送邮件无关。SMTP服务器的IP地址被作为垃圾邮件发送者被阻止。
  • 您的问题是什么?我唯一能推断的是,您想知道 Zen Spamhaus RBL 是什么以及为什么它会阻止您的电子邮件,在这种情况下,这与编程无关……我认为 Google 可以为您回答这个问题. :)
  • 我尝试使用我的大学电子邮件向我的大学电子邮件发送电子邮件,然后也出现同样的错误这意味着该服务器正在阻止自己的电子邮件?无论如何,我可以尝试任何其他 smtp 服务器吗?
  • 我正在寻找纠正此代码的方法,我尝试了 smtp.gmail.com 但需要身份验证,但没有成功。
  • 在你自己的机器上创建一个 smtp 服务器来验证你的代码是否正确。你尝试的 smtp 服务器不允许任意机器中继邮件是合理的,所以你看到的错误并不奇怪。

标签: java email servlets


【解决方案1】:

我会通知贵校的 IT 部门,他们应该能够处理该问题。虽然看起来他们留下了一个开放的接力,也许不是。

【讨论】:

    【解决方案2】:
    import javax.mail.*;    
    import javax.mail.internet.*;
    

    .....

    public static void postMail(String[] recipients, String subject, String message, String from) throws MessagingException {
        Properties props = new Properties();
        props.put("mail.smtp.host", Util.getProperty("smtpHost"));
        Session session = Session.getDefaultInstance(props, null);
        Message msg = new MimeMessage(session);
        InternetAddress addressFrom = new InternetAddress(from);
        msg.setFrom(addressFrom);
        InternetAddress[] addressTo = new InternetAddress[recipients.length];
        for (int i = 0; i < recipients.length; i++) {
            addressTo[i] = new InternetAddress(recipients[i]);
        }
        msg.setRecipients(Message.RecipientType.TO, addressTo);
        //msg.addHeader("MyHeaderName", "myHeaderValue");
        msg.setSubject(subject);
        msg.setContent(message, "text/html");
        Transport.send(msg);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      相关资源
      最近更新 更多