阿里云服务器禁用了25端口,所以改为465端口采用SSL协议传输邮件
163网易免费邮箱相关服务器信息:
相关代码:
package com.yc.util;import java.io.File;import java.util.Properties;import java.util.Random;import javax.activation.DataHandler;import javax.activation.DataSource;import javax.activation.FileDataSource;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.servlet.http.HttpSession;public class SendEmailUtil{public int sendEmail(String reperson,HttpSession sessions){int result=0;// 收件人电子邮箱String to = reperson;// 发件人电子邮箱String from = "你的真实邮箱地址";// 指定发送邮件的主机为 String host = ""; //163邮件服务器// 获取系统属性Properties properties = System.getProperties();// 设置邮件服务器properties.setProperty("mail.smtp.host", host);properties.put("mail.smtp.auth", "true");//阿里云服务器禁用25端口,所以服务器上改为465端口properties.put("mail.smtp.socketFactory.port", "465");properties.put("mail.smtp.socketFactory.class", ".ssl.SSLSocketFactory");properties.setProperty("mail.smtp.socketFactory.fallback", "false");properties.setProperty("mail.smtp.socketFactory.port", "465");// 获取默认session对象Session session = Session.getDefaultInstance(properties,new Authenticator(){public PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication("你的真实邮箱地址", "你的真实密码"); //发件人邮件用户名、密码}});try{// 创建默认的 MimeMessage 对象MimeMessage message = new MimeMessage(session);// Set From: 头部头字段message.setFrom(new InternetAddress(from));// Set To: 头部头字段message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));// Set Subject: 头部头字段message.setSubject("注册论坛网验证码");// 设置消息体Random rand=new Random();String txt=String.valueOf(rand.nextInt(9000)+1000);sessions.setAttribute("yanzhengma",txt);message.setText("你好"+reperson+"! 欢迎注册论坛网。验证码为:"+txt);// 发送消息Transport.send(message);result=1;}catch (MessagingException mex) {mex.printStackTrace();}return result;}}
贴上以上的代码以为可以发送,在本地电脑可以发送,在服务器上仍然发送失败,查看输出日志后才发现报的是以下的错误:
解决方法:在/etc/hosts中添加127.0.0.1本地映射
1.在linux终端输入 hostname
2.打开/etc/hosts编辑添加一行 127.0.0.1 iZwz9dgm0ak5eyqrkwypkjZ
3.再输入 hostname -i
解决以上问题,终于可以发送邮件啦!欢迎关注下方公众号,一起交流,期待你的到来
参考:/hoojjack/p/8025284.html
/FLFL/p/6476358.html
/zhangyunfei_happy/article/details/56276206