gpt4 book ai didi

java - 不使用身份验证时,电子邮件正在发送但未接收

转载 作者:行者123 更新时间:2023-12-01 04:32:13 25 4
gpt4 key购买 nike

我正在使用发送电子邮件

public void sendEmail(String fromEmailAddr, String toEmailAddr,String subject, String emailBody) {  

String host = "xxx";
final String user = "user";
final String password = "password";

// Get system properties
Properties properties = new Properties();

// Setup mail server
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", "25");


// Get the default Session object.
Session session = Session.getDefaultInstance(properties, null);

try{
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);

// Set From: header field of the header.
message.setFrom(new InternetAddress(fromEmailAddr));

// Set To: header field of the header.
message.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmailAddr));

// Set Subject: header field
message.setSubject(subject);

// Now set the actual message
message.setText(emailBody);

// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}

当我尝试使用上面的代码发送电子邮件时,会出现消息已成功发送消息....,但我没有收到电子邮件。另一方面,如果我使用身份验证,那么我会收到电子邮件

properties.put("mail.smtp.host", host);
properties.put("mail.smtp.auth", "true");

Session session = Session.getDefaultInstance(properties,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user,password);
}
});

为什么?是否需要提供主机的用户名和密码?我可以仅指定主机而不提供用户名和密码来发送电子邮件吗?

谢谢

最佳答案

我猜端口号可能是问题所在。

尝试更改 properties.put("mail.smtp.port", "25");

properties.put("mail.smtp.port", "587");

进一步可以引用this .

关于java - 不使用身份验证时,电子邮件正在发送但未接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17857788/

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