【问题标题】:Is the issue in my java code or the SMTP server? 452 4.5.3 Too many recipients error while sending mail through SMTP using java是我的 java 代码还是 SMTP 服务器的问题? 452 4.5.3 使用 java 通过 SMTP 发送邮件时出现太多收件人错误
【发布时间】:2016-01-20 05:41:35
【问题描述】:

我正在使用以下 java 方法通过 SMTP 服务器向多个用户发送邮件。当用户数低于 200 时,所有邮件都被投递。但是当收件人数量超过 200 时,我收到 com.sun.mail.smtp.SMTPAddressFailedException: 452 4.5.3 Too many recipients 并且没有邮件送达。

我猜这可能是由于 SMTP 服务器中的配置并通知了管理员。但他说 SMTP 服务器被配置为一次向多达 500 个收件人发送邮件,问题出在我的程序中。但我没有看到任何设置 SMTP 最大收件人的属性。 我是否遗漏了什么,或者我可以放松一下并继续指责服务器管理员?

public void sendAllMails(List<String> mailIds,String subject,String text) 
{
    String smtpHost="127.0.0.1";
    String fromAddress = "user1@mymail.com";
    String mailUser = "user1";
    String password = "pass1";
    String mailId=null;
    try{
        java.util.Properties properties = System.getProperties();
        Session session = Session.getInstance(properties, null);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(fromAddress));

        Iterator<String> iterator=mailIds.iterator();
        while(iterator.hasNext()){
            mailId=iterator.next();
            message.addRecipients(Message.RecipientType.BCC, mailId);
        }

        message.setSubject(subject);
        message.setContent(text, "text/html");
        session.setDebug(true);

        Transport transport = session.getTransport("smtp");
        transport.connect(smtpHost, mailUser, password);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
    catch(Exception e){
        e.printStackTrace();
        }
}

【问题讨论】:

    标签: java email smtp jakarta-mail


    【解决方案1】:

    服务器抱怨收件人数量。但是你应该在你的代码中修复它,只发送给合理数量的收件人(如果更多的人多次发送给部分收件人)

    为什么?是 SMTP。这样第一台服务器就会将邮件传递到该行的下一个 SMTP - 而您无法控制该行中的每个服务器。

    请注意,Transport 有一种方法可以在代码中指定收件人 - 您已经使用了该方法 - 如果您回收 Transport 实例和您的 Message,您可以保持标题完好无损 - 显示所有 > 200 个收件人 - 或者不是您现在的样子仅添加密件抄送。

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 2019-05-06
      • 2018-06-30
      • 1970-01-01
      • 2018-09-01
      • 2011-02-07
      相关资源
      最近更新 更多