java通过https发送邮件。本地发送邮件没有问题,但是上传到服务器上就不能发送了 10
由于项目需求,服务器上走的https协议。发送邮件返回的是false,请问一下代码怎么改才能适应https发邮件咧?/***发送邮件**@return成功返回true,失...
由于项目需求,服务器上走的https协议。发送邮件返回的是false,请问一下代码怎么改才能适应https发邮件咧?
/**
* 发送邮件
*
* @return 成功返回true,失败返回false
*/
public boolean sendMail() {
// 构造mail session
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props,
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// 构造MimeMessage并设定基本的值,创建消息对象
// MimeMessage message = mailSender.createMimeMessage();
// MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
MimeMessage msg = new MimeMessage(session);
nick=javax.mail.internet.MimeUtility.encodeText(Globals.NICK_NAME);
msg.setFrom(new InternetAddress(nick+" <"+from+">"));
// 把邮件地址映射到Internet地址上
InternetAddress[] address = { new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO, address);
// 设置邮件的标题
msg.setSubject(subject);
// 构造Multipart
Multipart mp = new MimeMultipart();
// 向Multipart添加正文
MimeBodyPart mbpContent = new MimeBodyPart();
// 设置邮件内容(纯文本格式)
// mbpContent.setText(content);
// 设置邮件内容(HTML格式)
mbpContent.setContent(content, "text/html;charset=utf-8");
// 向MimeMessage添加(Multipart代表正文)
mp.addBodyPart(mbpContent);
// 向Multipart添加MimeMessage
msg.setContent(mp);
// 设置邮件发送的时间。
msg.setSentDate(new Date());
// 发送邮件
Transport.send(msg);
// String username = "你的电子信箱用户名";
// String password = "你的电子信箱密码";
// msg.saveChanges(); // implicit with send()
// Transport transport = session.getTransport("smtp");
// transport.connect("mail.htf.com.cn", username, password);
// transport.sendMessage(msg, msg.getAllRecipients());
// transport.close();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
} 展开
/**
* 发送邮件
*
* @return 成功返回true,失败返回false
*/
public boolean sendMail() {
// 构造mail session
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props,
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// 构造MimeMessage并设定基本的值,创建消息对象
// MimeMessage message = mailSender.createMimeMessage();
// MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
MimeMessage msg = new MimeMessage(session);
nick=javax.mail.internet.MimeUtility.encodeText(Globals.NICK_NAME);
msg.setFrom(new InternetAddress(nick+" <"+from+">"));
// 把邮件地址映射到Internet地址上
InternetAddress[] address = { new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO, address);
// 设置邮件的标题
msg.setSubject(subject);
// 构造Multipart
Multipart mp = new MimeMultipart();
// 向Multipart添加正文
MimeBodyPart mbpContent = new MimeBodyPart();
// 设置邮件内容(纯文本格式)
// mbpContent.setText(content);
// 设置邮件内容(HTML格式)
mbpContent.setContent(content, "text/html;charset=utf-8");
// 向MimeMessage添加(Multipart代表正文)
mp.addBodyPart(mbpContent);
// 向Multipart添加MimeMessage
msg.setContent(mp);
// 设置邮件发送的时间。
msg.setSentDate(new Date());
// 发送邮件
Transport.send(msg);
// String username = "你的电子信箱用户名";
// String password = "你的电子信箱密码";
// msg.saveChanges(); // implicit with send()
// Transport transport = session.getTransport("smtp");
// transport.connect("mail.htf.com.cn", username, password);
// transport.sendMessage(msg, msg.getAllRecipients());
// transport.close();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
} 展开
1个回答
展开全部
你好:服务器的话,一个可能原因就是对配置文件的路径读取有问题,你可以可打印下路径,看看配置文件是否可以找到;再就是服务器的话,可以看下发送邮件的端口是否可用。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Zoho Mail
2024-11-18 广告
2024-11-18 广告
作为卓迈(北京)技术有限公司的工作人员,我们推荐使用Gmail、Outlook等国际知名的电子邮箱服务来在国外收发邮件。这些邮箱服务拥有广泛的国际覆盖和稳定的性能,能确保您与全球各地的合作伙伴和客户保持顺畅的沟通。同时,它们也具备强大的垃圾...
点击进入详情页
本回答由Zoho Mail提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询