Email SMTP发送多封电子邮件

Email SMTP发送多封电子邮件,email,smtp,jakarta-mail,Email,Smtp,Jakarta Mail,我必须在每个月的第一天向大约150人发送提醒邮件 它似乎工作得很好,但这个月。。。我开始发疯了 原因:javax.mail.AuthenticationFailedException:421 4.3.2服务未激活[bn6pr1801ca007.namprd18.prod.outlook.com] at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:965) ~[javax.mail-1.

我必须在每个月的第一天向大约150人发送提醒邮件

它似乎工作得很好,但这个月。。。我开始发疯了

原因:javax.mail.AuthenticationFailedException:421 4.3.2服务未激活[bn6pr1801ca007.namprd18.prod.outlook.com]

at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:965) ~[javax.mail-1.6.2.jar!/:1.6.2]
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:876) ~[javax.mail-1.6.2.jar!/:1.6.2]
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:780) ~[javax.mail-1.6.2.jar!/:1.6.2]
at javax.mail.Service.connect(Service.java:366) ~[javax.mail-1.6.2.jar!/:1.6.2]
此错误消息突然出现

它仍然可以很好地发送给少数人

当我尝试寻找大量的人时,它会发送给大约10个人并抛出错误。 然后,它在几分钟后发送其余的电子邮件;但是,由于错误,它似乎没有正确地结束循环

---应用程序属性---

---发送方式---

public void sendmail(String-tok、String-email、int-file、String-msg、String-to)引发不受支持的编码异常、消息异常、FileNotFoundException
{       
FilePath fp=新文件路径();
字符串令牌=tok;
字符串recipientAddress=电子邮件;
字符串subjectConfirm=“Confirm”+to;
字符串subjectAlert=“Alert”+to;
字符串确认URL=fp.getServer()+“/to/fileconfirm?token=“+token;
字符串消息=msg;
MimeMessagePreparator preparator=新的MimeMessagePreparator(){
public void prepare(MimeMessage MimeMessage)引发异常{
mimessage.setRecipient(Message.RecipientType.TO,
新的互联网地址(收件人地址);
mimessage.setFrom(新的InternetAddress(“xx@xxxx.com"));
如果(文件>0)
{
mimessage.setSubject(subjectConfirm);
mimessage.setContent(消息+”
“+”“” +“
”+“如果上面的按钮不起作用,请单击或复制并粘贴下面的地址以“确认” +“
”+确认URL,“text/html;charset=UTF-8”); } 其他的 { mimessage.setText(消息); mimessage.setSubject(subjectAlert); } } };this.mailssender.send(制表人); }
我通过将主机切换到amazon来修复它

我通过将主机切换到amazon来修复它

可能在发送邮件服务器中有一个tarpit。发送邮件服务器可能限制客户端在给定时间内可以发送的最大电子邮件数。尝试每隔10封左右增加几分钟的间隔时间。可能在发送邮件服务器中有一个tarpit。发送邮件服务器可能限制客户端在给定时间内可以发送的最大电子邮件数。试着每10封左右增加几分钟的间隔时间。
spring.mail.host=smtp.office365.com
spring.mail.port=587
spring.mail.protocol=smtp
spring.mail.username=xx@xxxx.com
spring.mail.password=xxxxxx
spring.mail.properties.mail.transport.protocol=smtps
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtps.timeout=8000
public void sendEmail(String tok, String email, int file, String msg, String to) throws UnsupportedEncodingException, MessagingException, FileNotFoundException
    {       
        FilePath fp = new FilePath();
        String token = tok;
        String recipientAddress = email;
        String subjectConfirm = "Confirm " + to;
        String subjectAlert = "Alert " +  to;
        String confirmationUrl = fp.getServer() + "/to/filesConfirm?token=" + token;
        String message = msg;

        MimeMessagePreparator preparator = new MimeMessagePreparator() {

            public void prepare(MimeMessage mimeMessage) throws Exception {

                mimeMessage.setRecipient(Message.RecipientType.TO, 
                        new InternetAddress(recipientAddress));
                mimeMessage.setFrom(new InternetAddress("xx@xxxx.com"));

                if (file > 0) 
                {
                    mimeMessage.setSubject(subjectConfirm);
                    mimeMessage.setContent(message + "<br>" + "<a target='_blank' href="+confirmationUrl+"><button>Confirm</button></a>"
                            + "<br>" + "If the button above doesn't work, please click or copy&paste the address below to 'Confirm'."
                            + "<br>" + confirmationUrl, "text/html;charset=UTF-8");
                }
                else
                {
                    mimeMessage.setText(message);
                    mimeMessage.setSubject(subjectAlert);
                }
            }
        }; this.mailSender.send(preparator);
    }