String host = "smtp.ym.163.com"; // 163免费企业邮箱的smtp服务器
String from = "myname@****.com"; // 我的企业邮箱地址
String to = "receiver@***.com"; // 邮件要发送到的邮箱地址
String username = "myname@****.com";
String password = "secret"; //
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
SmtpAuth smtpAuth = new SmtpAuth(username, password);
Session session = Session.getDefaultInstance(props, smtpAuth);
session.setDebug(true);
String msg = "hello";
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
BodyPart mdp = new MimeBodyPart();
mdp.setContent(msg, "text/html;charset=gb2312");
Multipart mm = new MimeMultipart();
mm.addBodyPart(mdp);
message.setContent(mm);
message.setSubject("这是一个好消息");
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
结果显示:
但是我用免费163个人邮箱账户发送,就可以。这是为什么呢?网上有说是网易企业邮箱的服务器地址官方给的不对。但是也没说正确的是什么。求大神指导!!
4 个解决方案
#1
企业邮箱和免费邮箱应该是两套不同邮件系统,他们所有的服务器地址也有所区别,如果百度不到的话直接电话联系网易企业邮箱应该应该会告诉你
#2
smtp.ym.163.com这个地址是没错的,我们的邮件服务用的也是这个地址,
这是我之前写的发送邮件的代码, 项目中也在使用,希望能对楼主有所帮助
/**
* 发送html邮件
* @param from 发件人
* @param to 收件人
* @param subject 邮件主题
* @param text 邮件内容
* @param host 邮件服务器类型(请传入smtp类型的邮件服务器)
* @param username 登录用户名
* @param password 登录密码
* @throws MessagingException
*/
public void sendHtmlMail(String from, String []to, String subject, String text, String host, String username,
String password) throws MessagingException
{
//设置服务器验证信息
Properties prop = new Properties();
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.smtp.timeout", "30000");
//设置邮件内容
JavaMailSenderImpl javaMailSend = new JavaMailSenderImpl();
MimeMessage message = javaMailSend.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "utf-8");
messageHelper.setFrom(from);
messageHelper.setTo(to);
messageHelper.setSubject(subject);
messageHelper.setText(text, true);
//设置邮件服务器登录信息
javaMailSend.setHost(host);
javaMailSend.setUsername(username);
javaMailSend.setPassword(password);
javaMailSend.setJavaMailProperties(prop);
javaMailSend.send(message);
}
这是我之前写的发送邮件的代码, 项目中也在使用,希望能对楼主有所帮助
#3
根据报的错误来看
是认证失败了
可能是用户名或密码错误
或者是你163企业邮箱的POP3/SMTP服务没有开启!
再或者其他什么原因
是认证失败了
可能是用户名或密码错误
或者是你163企业邮箱的POP3/SMTP服务没有开启!
再或者其他什么原因
#4
我的是开始可以发,但是一段时间之后就发不了了!重启服务器就好了!
#1
企业邮箱和免费邮箱应该是两套不同邮件系统,他们所有的服务器地址也有所区别,如果百度不到的话直接电话联系网易企业邮箱应该应该会告诉你
#2
smtp.ym.163.com这个地址是没错的,我们的邮件服务用的也是这个地址,
这是我之前写的发送邮件的代码, 项目中也在使用,希望能对楼主有所帮助
/**
* 发送html邮件
* @param from 发件人
* @param to 收件人
* @param subject 邮件主题
* @param text 邮件内容
* @param host 邮件服务器类型(请传入smtp类型的邮件服务器)
* @param username 登录用户名
* @param password 登录密码
* @throws MessagingException
*/
public void sendHtmlMail(String from, String []to, String subject, String text, String host, String username,
String password) throws MessagingException
{
//设置服务器验证信息
Properties prop = new Properties();
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.smtp.timeout", "30000");
//设置邮件内容
JavaMailSenderImpl javaMailSend = new JavaMailSenderImpl();
MimeMessage message = javaMailSend.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "utf-8");
messageHelper.setFrom(from);
messageHelper.setTo(to);
messageHelper.setSubject(subject);
messageHelper.setText(text, true);
//设置邮件服务器登录信息
javaMailSend.setHost(host);
javaMailSend.setUsername(username);
javaMailSend.setPassword(password);
javaMailSend.setJavaMailProperties(prop);
javaMailSend.send(message);
}
这是我之前写的发送邮件的代码, 项目中也在使用,希望能对楼主有所帮助
#3
根据报的错误来看
是认证失败了
可能是用户名或密码错误
或者是你163企业邮箱的POP3/SMTP服务没有开启!
再或者其他什么原因
是认证失败了
可能是用户名或密码错误
或者是你163企业邮箱的POP3/SMTP服务没有开启!
再或者其他什么原因
#4
我的是开始可以发,但是一段时间之后就发不了了!重启服务器就好了!