600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 阿里云企业邮箱发送邮件失败 在本地测试可行 在云服务器上失败

阿里云企业邮箱发送邮件失败 在本地测试可行 在云服务器上失败

时间:2023-04-05 01:36:40

相关推荐

阿里云企业邮箱发送邮件失败 在本地测试可行 在云服务器上失败

最近公司有个业务,让我做一个发邮件的功能,前端传信息给后端,然后让我直接把信息传到某企业邮箱上去,本人用阿里云企业邮箱做好功能之后在本地测试没有问题,但是上传到公司服务器之后却一直显示错误。

找到服务器日志查看了之后发现错误是 port25 出了问题,自己研究许久无果,上百度搜到的解答都是说企业邮箱的25端口屏蔽了。

遂用了QQ邮箱,经前辈指点,完成功能,亲测有用

参考/qq_28981541/article/details/80816508博客进行改动

1. 首先是dto层的Mail类

public class Mail implements Serializable {/*** 序列号*/private static final long serialVersionUID = -3562218214168975242L;/*** 邮件编码*/public static final String ENCODEING = "UTF-8";/*** 服务器地址*/private String host;/*** 服务器端口号*/private String portNumber;/*** 发件人的邮箱*/private String sender;/*** 收件人的邮箱*/private String receiver;/*** 发件人昵称*/private String name;/*** 账号*/private String username;/*** 密码*/private String password;/*** 主题*/private String subject;/*** 信息(支持HTML)*/private String message;}

记得生成getter和setter方法

2. 其次是MailUtil工具类

import mons.mail.EmailException;import mons.mail.HtmlEmail;public class MailUtil {public boolean send(Mail mail) {//发送email对象HtmlEmail email = new HtmlEmail();try {//这里是SMTP发送服务器的名字email.setHostName(mail.getHost());//端口号不为空时,用户自定义的端口号为SMTP发送服务器端口号if (!"".equals(mail.getPortNumber())) {email.setSSLOnConnect(true);email.setSslSmtpPort(mail.getPortNumber());}//字符编码集的设置email.setCharset(Mail.ENCODEING);//收件人的邮箱email.addTo(mail.getReceiver());//发送人的邮箱email.setFrom(mail.getSender(), mail.getName());// 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码email.setAuthentication(mail.getUsername(), mail.getPassword());// 要发送的邮件主题email.setSubject(mail.getSubject());// 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签email.setMsg(mail.getMessage());// 发送email.send();return true;} catch (EmailException e) {e.printStackTrace();return false;}}

这个类里最上面两行导入的包需要commons-email.jar的jar包

另外写这个功能还需要mail.jar的jar包

本人用maven创建的项目就直接到依赖包网站直接导入这两个jar包了

3.调用工具类发邮件

public void test() {Mail mail = new Mail();mail.setHost(""); //设置邮件服务器,如果不用QQ邮箱的,自己找找看相关的mail.setPortNumber("465"); //设置邮件服务器端口号,默认25mail.setSender("发送人的邮箱,这里用qq"); //发送人mail.setName("xx公司");//发送人昵称mail.setReceiver("接收人的邮箱,可以随便写"); //接收人mail.setUsername("登陆账号"); //登录账号,一般都是和邮箱名一样mail.setPassword("qq邮箱授权码"); //QQ邮箱登录第三方客户端时,密码框请输入“授权码”进行验证。其他的密码具体查看邮件服务器的说明//发送邮件// 这里可以写一些邮件内容或者计算功能//定义邮件标题String title = "标题 "mail.setSubject(title);//定义邮件内容StringBuilder emailContent = new StringBuilder();//以下随便改emailContent.append("内容<br/>");emailContent.append("...........");mail.setMessage(String.valueOf(emailContent));if (new MailUtil().send(mail)) {System.out.println("发送成功");} else {System.out.println("发送失败");}}

这样子,邮件发送功能就完成了!

可喜可贺,可喜可贺

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。