[英]javax unknown host exception?
我正在嘗試使用javax發送eamil。 我的代碼如下:
private String emailSender(String emailTo, String emailFrom, String message, String subject, String password) {
String status = "failed";
try {
String ccEmail = "";
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.smtps.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.setProperty("mail.smtps.auth", "true");
props.put("mail.smtps.quitwait", "false");
Session session = Session.getInstance(props, null);
// -- Create a new message --
final MimeMessage msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(emailFrom));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(emailTo, false));
if (ccEmail.length() > 0) {
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(ccEmail, false));
}
msg.setSubject(subject);
msg.setText(message, "utf-8");
msg.setSentDate(new Date());
SMTPTransport t = (SMTPTransport) session.getTransport("smtps");
String host = StringUtils.substringAfter(emailFrom, "@");
String emailName = StringUtils.substringBefore(emailFrom, "@");
t.connect("smtp." + host, emailName, password);
t.sendMessage(msg, msg.getAllRecipients());
t.close();
status = "Sent";
} catch (Exception e) {
LOGGER.error("error with sending email ", e);
}
return status;
}
通常它可以正常工作。 我可以通過gmail帳戶或yahoo進行發送...但是當我嘗試從contact@vayg.com帳戶進行發送時,出現未知的主機異常,如下所示:
javax.mail.MessagingException: Unknown SMTP host: smtp.vayg.com;
有什么辦法嗎?
您假設主機具有第3級域,並且始終以“ smtp”作為前綴。
但這並非總是如此。 smtp主機名可以是任何名稱。
從管理員那里獲取您的smtp主機名和端口,然后在代碼中使用它。
例如:如您在代碼中提到的,gmail有其自己的域和端口號。
在屬性文件中添加適當的主機名和端口號,然后嘗試運行代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.