Java GMAIL SMTP邮件发送错误-553 5.1.2指定的地址不是有效的RFC-5321地址

Java GMAIL SMTP邮件发送错误-553 5.1.2指定的地址不是有效的RFC-5321地址,java,jakarta-mail,Java,Jakarta Mail,这是我正在使用的代码。到今天为止,它工作得很好,但现在不工作了。是否有任何机构也有同样的问题 Properties properties = new Properties(); properties.put("mail.smtp.host", "smtp.gmail.com"); properties.put("mail.smtp.port", "587"); properties.put("mail.smtp.auth", "true"); propert

这是我正在使用的代码。到今天为止,它工作得很好,但现在不工作了。是否有任何机构也有同样的问题

   Properties properties = new Properties();
    properties.put("mail.smtp.host", "smtp.gmail.com");
    properties.put("mail.smtp.port", "587");
    properties.put("mail.smtp.auth", "true");
    properties.put("mail.smtp.starttls.enable", "true");
    properties.put("mail.user", "username@gmail.com");
    properties.put("mail.password", "passwordtext");
        Authenticator auth = new Authenticator() {
        public PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("username@gmail.com", "passwordtext");
        }
    };
    Session session = Session.getInstance(properties, auth);
        Message msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress("username@gmail.com"));
    msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse("toaddress@gmail.com"));
    msg.setSubject("hiiiii");
    msg.setSentDate(new Date());

    MimeBodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setContent("ggggg", "text/html");

    msg.setContent(multipart);

   Transport.send(msg);
在我的代码中,我使用的是:

   msg.setFrom(new InternetAddress("username"));
将此更改为

   msg.setFrom(new InternetAddress("username@gmail.com")); 
这很有效。。。但是

   msg.setFrom(new InternetAddress("username")); 
工作到昨天

这是一个谜,为什么它(显然)工作到昨天与一个无效的电子邮件地址。然而,解决办法是显而易见的。始终使用完全兼容的电子邮件地址。。。正如错误消息所说

请注意,报告中说:

解析给定字符串并创建InternetAddress。有关解析的详细信息,请参阅解析方法。使用“严格”解析解析该地址。此构造函数不执行InternetAddress(字符串地址,布尔严格)的附加语法检查当strict为true时,构造函数不执行。此构造函数等效于InternetAddress(address,false)

参数:地址-RFC822格式的地址

抛出:AddressException-如果分析失败”


如果它在明天之前工作正常,有什么问题吗?你能给一个地址的例子,它给出了这个错误吗?soryy所有…实际上在我的代码中,我使用像msg.setFrom(新InternetAddress(“用户名”);将此更改为msg.setFrom(新InternetAddress(“username@gmail.com")); 这很好,但是msg.setFrom(新的InternetAddress(“用户名”);工作到昨天“它一直工作到明天,但现在不工作”。时间旅行悖论?