基本在每个项目中都会遇到发送邮件的需求,大家熟知的邮箱有新浪、雅虎、QQ、OUTLOOK等,想必大家也遇到过发送邮件总是被发送到垃圾邮箱中,下面是我找到的一个解决办法,仅供参考。
2017-09-15 10:40
711 查看
package com.guilin.utils.sms;
import java.util.Date;
import java.util.Properties;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import com.guilin.utils.SetSystemProperty;
public class SendMail {
private static JavaMailSenderImpl mailSender;
/**
* 即时发送简单内容邮件
*
* @param reciveEmail
* 接收邮箱
* @param subject
* 邮件主题
* @param Text
* 邮件内容
* @return
*/
public static boolean sendEmail(String reciveEmail, String subject,
String Text) throws Exception {
// SimpleMailMessage ssm = new SimpleMailMessage();
// ssm.setFrom(SetSystemProperty.getKeyValue("MAILSENDER_USERNAME"));// cndona@163.com
// ssm.setTo(reciveEmail);
// ssm.setSubject(subject);
// ssm.setSentDate(new Date());
// ssm.setText(Text);
Properties props = new Properties(); // 用于连接邮件服务器的参数配置(发送邮件时才需要用到)
Session session = Session.getDefaultInstance(props); // 根据参数配置,创建会话对象(为了发送邮件准备的)
MimeMessage message = new MimeMessage(session); // 创建邮件对象
// 2. From: 发件人
// 其中 InternetAddress 的三个参数分别为: 邮箱, 显示的昵称(只用于显示, 没有特别的要求), 昵称的字符集编码
// 真正要发送时, 邮箱必须是真实有效的邮箱。
message.setFrom(new InternetAddress(SetSystemProperty
.getKeyValue("MAILSENDER_USERNAME"), "发送者名称", "UTF-8"));
// 3. To: 收件人
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(
reciveEmail, "USER_CC", "UTF-8"));
// 4. Subject: 邮件主题
message.setSubject(subject, "UTF-8");
// 5. Content: 邮件正文(可以使用html标签)
message.setContent(Text, "text/html;charset=UTF-8");
mailSender.setHost(SetSystemProperty.getKeyValue("MAILSENDER_HOST"));
mailSender.setUsername(SetSystemProperty
.getKeyValue("MAILSENDER_USERNAME"));
mailSender.setPort(Integer.valueOf(SetSystemProperty
.getKeyValue("MAILSENDER_PORT")));
mailSender.setPassword(SetSystemProperty
.getKeyValue("MAILSENDER_PASSWORD"));
try {
mailSender.send(message);
return true;
} catch (MailException e) {
e.printStackTrace();
return false;
}
}
public static JavaMailSenderImpl getMailSender() {
return mailSender;
}
public static void setMailSender(JavaMailSenderImpl mailSender) {
SendMail.mailSender = mailSender;
}
}
相关文章推荐
- 想必大家在做参数验证的时候,都会遇到一个问题,就是如何验证枚举? 自定义annotation 自定义Validator
- 最近一阵子写C#的项目,遇到的一些问题以及解决的办法,跟大家分享一下```
- 【转】Kettle发送邮件步骤遇到附件名是中文名变成乱码的问题解决办法
- 在plsql中,总是遇到在clob类型字段上存储数据出错--字符串太长,现在有一个比较简单的解决办法
- 【已解决】PHP项目需求:在现有网站中每个页面增加一个get参数
- outlook 2003发送邮件时提示“没有注册接口”解决办法
- C#发送邮件时提示:“不允许使用邮箱名称。服务器响应为:”的错误解决办法
- QQ发送邮件失败的解决办法
- 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法
- 我想做一个掌上日记本,先有几个问题还没有找到合适的解决办法,请大家帮忙!
- 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法
- 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法
- 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法
- 开发Struts 2项目遇到的一个问题,就是在struts-tags标签库下没有了s:datetimepicker标签的解决办法
- win7(32bit)使用outlook发送带附件邮件时,对方收到winmail.dat的解决办法
- Exchange无法发送邮件 未找到匹配的连接器来路由外部收件人解决办法
- 开发Struts 2项目遇到的一个问题,就是在struts-tags标签库下没有了s:datetimepicker标签的解决办法
- 开发Struts 2项目遇到的一个问题,就是在struts-tags标签库下没有了s:datetimepicker标签的解决办法
- win7(32bit)使用outlook发送带附件邮件时,对方收到winmail.dat的解决办法
- outlook垃圾邮箱解决办法-110