java web 邮件发送

/*

*

*注意这里直接是工具类不需要在spring配置

*

*/

package com.education.email;


import java.io.File;


import java.util.Properties;


import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;


import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;


@Service("emailService")
public class MailUtil {


private static final String HOST = "smtp.qq.com";//qq的smtp端口 其他邮箱的话可能会不一样
private static final String SMTP = "smtp";// smtp 需要去邮箱开通,QQ账户是 设置-账户-SMTP服务开通
private static final String USERNAME = "******@qq.com";//发送邮件的邮箱
private static final String PASSWORD = "********";//开通smtp后 他会发给你一个随机码 这里就填这个随机码
private static final int PORT = 587;// 587/465  邮箱端口 反正我用的是587
private static final String DEFAULTENCODING = "UTF-8";//编码


private static JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();


private static Properties prop = new Properties();


static {
// 设定mail server
senderImpl.setHost(HOST);
senderImpl.setProtocol(SMTP);
senderImpl.setUsername(USERNAME);
senderImpl.setPassword(PASSWORD);
senderImpl.setPort(PORT);
senderImpl.setDefaultEncoding(DEFAULTENCODING);


// 设定properties
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.timeout", "500000");
// 设置调试模式可以在控制台查看发送过程
prop.put("mail.debug", "true");


senderImpl.setJavaMailProperties(prop);
}


public static void main(String args[]) {
}


/**
* 发送简单邮件

* @param to
*            收件人邮箱
* @param subject
*            主题
* @param content
*            内容
* @return
*/
public static boolean singleMail(String to, String subject, String content) {
String[] array = new String[] { to };
return singleMail(array, subject, content);
}


/**
* 发送简单文本邮件

* @param to
*            收件人邮箱数组
* @param subject
*            主题
* @param content
*            内容
* @return
*/
public static boolean singleMail(String[] to, String subject, String content) {
boolean result = true;


SimpleMailMessage mailMessage = new SimpleMailMessage();
// 设置收件人,寄件人 用数组发送多个邮件
mailMessage.setTo(to);
mailMessage.setFrom(USERNAME);
mailMessage.setSubject(subject);
mailMessage.setText(content);
// 发送邮件
try {
senderImpl.send(mailMessage);
} catch (MailException e) {
e.printStackTrace();
result = false;
}
return result;
}


/**
* 发送html邮件

* @param to
*            收件人
* @param subject
*            主题
* @param html
*            html代码
* @return
*/
public static boolean htmlMail(String[] to, String subject, String html) {
boolean result = true;


MimeMessage mailMessage = senderImpl.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);


try {
// 设置收件人,寄件人 用数组发送多个邮件
messageHelper.setTo(to);
messageHelper.setFrom(USERNAME);
messageHelper.setSubject(subject);
// true 表示启动HTML格式的邮件
messageHelper.setText(html, true);


// 发送邮件
senderImpl.send(mailMessage);
} catch (MessagingException e) {
result = false;
e.printStackTrace();
}
return result;
}


/**
* 发送内嵌图片的邮件 (cid:资源名)

* @param to
*            收件人邮箱
* @param subject
*            主题
* @param html
*            html代码
* @param imgPath
*            图片路径
* @return
*/
public static boolean inlineFileMail(String[] to, String subject, String html, String filePath) {
boolean result = true;


MimeMessage mailMessage = senderImpl.createMimeMessage();
try {
// 设置true开启嵌入图片的功能
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
// 设置收件人,寄件人 用数组发送多个邮件
messageHelper.setTo(to);
messageHelper.setFrom(USERNAME);
messageHelper.setSubject(subject);
// true 表示启动HTML格式的邮件
messageHelper.setText(html, true);


FileSystemResource file = new FileSystemResource(new File(filePath));
messageHelper.addInline(file.getFilename(), file);


// 发送邮件
senderImpl.send(mailMessage);
} catch (MessagingException e) {
result = false;
e.printStackTrace();
}
return result;
}


/**
* 发送带附件的邮件

* @param to
* @param subject
* @param html
* @param filePath
* @return
*/
public static boolean attachedFileMail(String[] to, String subject, String html, String filePath) {
boolean result = true;


MimeMessage mailMessage = senderImpl.createMimeMessage();


try {
// multipart模式 为true时发送附件 可以设置html格式
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "utf-8");
// 设置收件人,寄件人 用数组发送多个邮件
messageHelper.setTo(to);
messageHelper.setFrom(USERNAME);
messageHelper.setSubject(subject);
// true 表示启动HTML格式的邮件
messageHelper.setText(html, true);


FileSystemResource file = new FileSystemResource(new File(filePath));
// 这里的方法调用和插入图片是不同的。
messageHelper.addAttachment(file.getFilename(), file);


// 发送邮件
senderImpl.send(mailMessage);
} catch (MessagingException e) {
result = false;
e.printStackTrace();
}
return result;
}


}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值