gpt4 book ai didi

java - 无法连接到 SMTP 主机 : x. x.x.x,端口:java 中的 25

转载 作者:太空宇宙 更新时间:2023-11-04 13:13:52 24 4
gpt4 key购买 nike

我无法用 Java 发送电子邮件,它会抛出异常:无法连接到 SMTP 主机:x.x.x.x,端口:25。

我 telnet x.x.x.x 25 OK,并且我使用相同的主机、端口、用户和密码在 php 代码中成功发送了电子邮件,因此我认为此问题不是由于网络或防火墙问题造成的。

在测试中,我使用 gmail 服务器 (smtp.gmail.com :465) 在 java 中发送电子邮件,但不使用主机:x.x.x.x 端口 25。

这是我的java代码:HOST=x.x.x.x

Properties mailServerProperties = System.getProperties();
mailServerProperties.put("mail.smtp.user", USER);
mailServerProperties.put("mail.smtp.host", HOST);
mailServerProperties.put("mail.smtp.port", 25);
mailServerProperties.put("mail.smtp.debug", "true");
mailServerProperties.put("mail.smtp.auth", "true");
mailServerProperties.put("mail.smtp.starttls.enable", "true");
mailServerProperties.put("mail.smtp.socketFactory.port", 25);
mailServerProperties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

javax.mail.Session getMailSession = javax.mail.Session.getDefaultInstance(mailServerProperties);
MimeMessage generateMailMessage = new MimeMessage(getMailSession);
generateMailMessage.setHeader("Content-Type", "text/plain; charset=UTF-8");
generateMailMessage.setSubject(subject, "UTF-8");
generateMailMessage.setFrom(new InternetAddress(ApiConstant.EMAIL, fromEmail, "UTF-8"));
generateMailMessage.addRecipients(Message.RecipientType.TO, toAddress);
generateMailMessage.addRecipients(Message.RecipientType.CC, ccAddress);
generateMailMessage.addRecipients(Message.RecipientType.BCC, bccAddress);

Multipart multipart = new MimeMultipart();
MimeBodyPart messagePart = new MimeBodyPart();
messagePart.setContent(content, "text/html; charset=UTF-8");
multipart.addBodyPart(messagePart);
generateMailMessage.setContent(multipart);

logger.debug("Create transport");
Transport transport = getMailSession.getTransport("smtp");
transport.connect(HOST, 25, USER, PASS);
transport.sendMessage(generateMailMessage, generateMailMessage.getAllRecipients());
transport.close();

这是我的 php 代码,它有效。

$mail = new PHPMailer();
$mail->Host = 'x.x.x.x';
$mail->Port = '25';
$mail->SMTPAuth = true;
$mail->Username = USER;
$mail->Password = PASS;
$mail->From = '.....';
$mail->FromName = '.....';

$mail->setLanguage('vi');
$mail->isHTML(true);
$mail->CharSet = 'UTF-8';
$mail->addAttachment(FILE_NAME);
$mail->addAddress('....');
$mail->Subject ="test";
$mail->Body = "test";
$mail->Body = $body;

请帮助我。

最佳答案

在某些网络上,IPv6 可能会出现问题。尝试使用 VM 选项运行您的应用

-Djava.net.preferIPv4Stack=true

java -Djava.net.preferIPv4Stack=true -cp . MyClass

关于java - 无法连接到 SMTP 主机 : x. x.x.x,端口:java 中的 25,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33711487/

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