gpt4 book ai didi

java - 必须先发出 STARTTLS 命令

转载 作者:IT老高 更新时间:2023-10-28 21:11:41 35 4
gpt4 key购买 nike

我正在使用我的 Gmail 帐户运行这个简单的示例,但它不起作用并出现以下错误:

      send failed, exception: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. nv2sm4478384pbb.6      

这是我的代码

   public class Email
{
public static void main(String [] args)
{

Properties props = new Properties();
props.put("mail.smtp.host", "smtp.googlemail.com");
props.put("mail.from", "myemail@gmail.com");
Session session = Session.getInstance(props, null);

try {
MimeMessage msg = new MimeMessage(session);
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO,
"myemail@hotmail.com");
msg.setSubject("JavaMail hello world example");
msg.setSentDate(new Date());
msg.setText("Hello, world!\n");
Transport.send(msg);
} catch (MessagingException mex) {
System.out.println("send failed, exception: " + mex);
}
}
}

最佳答案

您可能正在尝试使用端口 25 上的 Gmail 服务器通过未经身份验证的连接将邮件传递给第三方。 Gmail 不允许您这样做,因为这样任何人 都可以使用 Gmail 的服务器向其他任何人发送邮件。这称为开放中继,是早期垃圾邮件的常见促成因素。 Internet 上不再接受开放式中继。

您需要让您的 SMTP 客户端使用经过身份验证的连接连接到 Gmail,可能在 port 587 上。 .

关于java - 必须先发出 STARTTLS 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10509699/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com