gpt4 book ai didi

java - 通过 gmail 发送电子邮件的属性

转载 作者:搜寻专家 更新时间:2023-11-01 03:52:32 24 4
gpt4 key购买 nike

我目前正在编写一个简单的程序,通过 gmail 将电子邮件发送到 gmail 帐户。尝试了各种方法,但我经常遇到同样的错误,“无法连接到 SMTP 主机:smtp.gmail.com,端口:587;”

是否与属性设置有关。这是我程序的片段。寻找解决方案:)

提前致谢

public static boolean SendMail(String from, String password, String message, String to[]){
String host = "smtp.gmail.com";
Properties prop = System.getProperties();
prop.put("mail.smtp.starttls.enable", "true");
prop.put("mail.smtp.host", host);
prop.put("mail.smtp.user", from);
prop.put("mail.smtp.password", password);
prop.put("mail.smtp.port", 587); //prop.put("mail.smtp.port", 465);//
prop.put("mail.smtp.auth", "true");

// check for the first value in the name of props or prop
Session session = Session.getDefaultInstance(prop, null);
MimeMessage mimemsg = new MimeMessage(session);

try{
mimemsg.setFrom(new InternetAddress(from));

// Get reciepents Address
InternetAddress[] toAddress = new InternetAddress[to.length];
for (int i=0;i<to.length;i++){
toAddress[i] = new InternetAddress(to[i]);
}

//Add all toAddress to mimemessage
for(int j=0;j<toAddress.length;j++){
mimemsg.addRecipient(RecipientType.TO, toAddress[j]);

}

// Add Subject.
mimemsg.setSubject(" MAIL from JAVA Program");
// Add Message to the content(input to the method )
mimemsg.setText(message);

Transport trans = session.getTransport("smtp");
trans.connect(host,from,password);
trans.sendMessage(mimemsg, mimemsg.getAllRecipients());
trans.close();
return true;

}catch(MessagingException me){
me.printStackTrace();
}


return false;
}

最佳答案

您的设置似乎是正确的。 GMail SMTP 端口是 587对于 TLS。这看起来像是网络连接问题(主机名无法解析)。

  • 仔细检查您的登录凭据。
  • 尝试从同一个盒子telnet smtp.gmail.com 587。您收到 SMTP 问候语了吗?
  • 尝试直接使用 IP 地址。 注意:除故障排除外,您不应使用直接 IP。它必然会随时更改并使您的代码无用。

关于java - 通过 gmail 发送电子邮件的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21558693/

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