使用java使用godaddy帐户发送电子邮件
我正在尝试使用我的java godaddy帐户发送电子邮件。下面是我的代码使用java使用godaddy帐户发送电子邮件,java,email,Java,Email,我正在尝试使用我的java godaddy帐户发送电子邮件。下面是我的代码 Properties props = System.getProperties(); props.put("mail.transport.protocol","smtp" ); props.put("mail.smtp.starttls.enable","true" ); props.put("mail.smtp.ssl.enable", "false"); props.put("mail.smtp.host","smt
Properties props = System.getProperties();
props.put("mail.transport.protocol","smtp" );
props.put("mail.smtp.starttls.enable","true" );
props.put("mail.smtp.ssl.enable", "false");
props.put("mail.smtp.host","smtpout.secureserver.net");
props.put("mail.smtp.auth","true");
props.put("mail.smtp.port","465");
props.put("mail.debug","true");
props.put("mail.smtp.socketFactory.port","465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback","false");
Authenticator auth = new SMTPAuthenticator();
Session session=Session.getInstance(props,auth);
session.setDebug(true);
// -- Create a new message --
Transport transport=session.getTransport();
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(""email@domain.com));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("email@domain.com", false));
msg.setSubject("subject");
msg.setText("Message");
transport.connect();
Transport.send(msg);
transport.close();
执行时,我得到以下异常
com.sun.mail.util.MailConnectException:无法连接到主机,端口:smtpout.secureserver.net,465;超时-1;
嵌套异常是:
java.net.UnknownHostException:smtpout.secureserver.net
PS:当我使用gmail帐户进行身份验证时,它工作正常,电子邮件发送成功。当我使用godaddy帐户时,异常抛出
请指导我如何解决这个问题
提前感谢…
需要javax.mail 1.5.2及更高版本我在SpringBoot中的配置(将domainname.com替换为您的domainname)
我还必须添加
mimeMessageHelper.setFrom(“info@domainname.com");代码>在发送邮件之前(否则它使用了我的系统名并给出了一个错误),并且此设置工作正常。以下是对我来说绝对有效的完整方法(我还在邮件中使用了附件):
您确定SMTP服务器的主机名正确吗?我已删除我的答案,我没有godaddy帐户,因此无法在我身边进行检查。只需浏览这篇文章@SpringLearner我从您提供的链接中尝试了相同的方法,但它也引发了相同的异常。@Stefan ya我确信我遵循了SpringLearner提供的链接中给出的相同过程…此信息非常有用,对我很有用,谢谢Krishna Kumar,特别是mimeMessageHelper.setFrom(“info@domainname.com"); 工作。
MailSSLSocketFactory socketFactory = new MailSSLSocketFactory();
socketFactory.setTrustAllHosts(true);
spring:
mail:
host: smtpout.secureserver.net
port: 465
username: info@domainname.com
password: password
protocol: smtp
properties.mail.smtp:
auth: true
ssl.enable: true
ssl.trust: "*"
private void sendUsingSmtp(MailDetail mailDetail) {
Properties props = new Properties();
props.put("mail.host", "smtpout.secureserver.net");
props.put("mail.port", "465");
props.put("mail.username", "info@domainName.com");
props.put("mail.password", “password”);
props.put("mail.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.trust", "*");
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("info@domainName”, “password");
}
});
MimeMessage msg = new MimeMessage(session);
try {
msg.setFrom(new InternetAddress("info@domainName.com", false);
msg.setRecipients(MimeMessage.RecipientType.TO, InternetAddress.parse(“targetEmail@gmail.com"));
msg.setSubject("Test Subject.");
msg.setContent("Test Content.", "text/html");
msg.setSentDate(new Date());
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent("Test Content.", "text/html");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
MimeBodyPart attachPart = new MimeBodyPart();
attachPart.attachFile("/var/tmp/abc.txt");
multipart.addBodyPart(attachPart);
msg.setContent(multipart);
Transport.send(msg);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}