下面列出了javax.mail.event.TransportEvent#org.springframework.mail.javamail.MimeMessageHelper 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void sendMessageWithAttachment(String to,
String subject,
String text,
String pathToAttachment) {
try {
MimeMessage message = emailSender.createMimeMessage();
// pass 'true' to the constructor to create a multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(NOREPLY_ADDRESS);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(text);
FileSystemResource file = new FileSystemResource(new File(pathToAttachment));
helper.addAttachment("Invoice", file);
emailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
public int sendHtmlEmail(String subject, String content, String to) {
try {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");
mimeMessage.setContent(content, "text/html;charset=utf-8");
messageHelper.setFrom(mailMessage.getFrom());
messageHelper.setSubject(subject); //主题
messageHelper.setTo(to); //发送给
messageHelper.setCc(mailMessage.getFrom()); //抄送
mailSender.send(mimeMessage); //发送邮件
} catch (Exception e) {
logger.error("the email send error ! content: {}, exception: {}", content, e);
return -1;
}finally {
}
return 1;
}
/**
* 发送模板信息
* @throws Exception
*/
@Test
public void sendTemplateMail() throws Exception {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(username);
helper.setTo("[email protected]");
helper.setSubject("测试主题:模板邮件");
/**
* 模板内需要的参数,保持一致
*/
Map<String, Object> params = new HashMap<>();
params.put("userName", "lihaodong");
/**
* 配置FreeMarker模板路径
*/
Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);
configuration.setClassForTemplateLoading(this.getClass(), "/templates");
String html = FreeMarkerTemplateUtils.processTemplateIntoString(configuration.getTemplate("mail.ftl"), params);
helper.setText(html, true);
javaMailSender.send(mimeMessage);
}
@Override
public void sendHtmlMail(String to, String subject, String content) {
MimeMessage message = mailSender.createMimeMessage();
try {
//true表示需要创建一个multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
mailSender.send(message);
logger.info("html邮件发送成功");
} catch (MessagingException e) {
logger.error("发送html邮件时发生异常!", e);
}
}
@Async
@Order
@EventListener(EmailEvent.class)
public void emailListener(EmailEvent event) {
MimeMessagePreparator mailMessage = mimeMessage -> {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
message.setFrom(from, fromName);
for (String to : event.getTos()) {
message.addTo(to);
}
message.setSubject(event.getSubject());
message.setText(event.getContent(), true);
// String html = "<html><body><h4>Hello,SpringBoot</h4><img src='cid:boot' /></body></html>";
// mimeMessageHelper.setText(html, true);
// 设置内嵌元素 cid,第一个参数表示内联图片的标识符,第二个参数标识资源引用
// mimeMessageHelper.addInline("boot", new ClassPathResource("public/images/boot.png"));
//添加附件,第一个参数表示添加到 Email 中附件的名称,第二个参数是图片资源
};
mailSender.send(mailMessage);
}
@RequestMapping("sendHtmlEmail")
public String sendHtmlEmail() {
MimeMessage message = null;
try {
message = jms.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo("[email protected]"); // 接收地址
helper.setSubject("一封HTML格式的邮件"); // 标题
// 带HTML格式的内容
StringBuffer sb = new StringBuffer("<p style='color:#42b983'>使用Spring Boot发送HTML格式邮件。</p>");
helper.setText(sb.toString(), true);
jms.send(message);
return "发送成功";
} catch (Exception e) {
e.printStackTrace();
return e.getMessage();
}
}
private static void createMimeAlternativeEmail(int i) {
try {
var sender = getEmailSender();
var message = sender.createMimeMessage();
var helper = new MimeMessageHelper(message, true);
helper.setTo("[email protected]");
helper.setFrom("[email protected]");
helper.setSubject("Test-Alternative-Mail " + i);
helper.setText("This is the test mail number" + i, "<html><head></head><body>This is the test mail number " + i + "</body>");
helper.addAttachment("app-icon.png", new ClassPathResource("/static/gfx/app-icon.png"));
helper.addAttachment("customizing.css", new ClassPathResource("/static/customizing.css"));
sender.send(message);
} catch (MessagingException e){
throw new RuntimeException("Failed to create mail", e);
}
}
/**
* 发送html邮件
*
* @throws MessagingException
* @throws AddressException
*/
public void sendHtmlMail(String from, String[] to, String title, String text)
throws AddressException, MessagingException {
long start = System.currentTimeMillis();
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "GBK");
InternetAddress[] toArray = new InternetAddress[to.length];
for (int i = 0; i < to.length; i++) {
toArray[i] = new InternetAddress(to[i]);
}
messageHelper.setFrom(new InternetAddress(from));
messageHelper.setTo(toArray);
messageHelper.setSubject(title);
messageHelper.setText(text, true);
mimeMessage = messageHelper.getMimeMessage();
mailSender.send(mimeMessage);
long end = System.currentTimeMillis();
LOG.info("send mail start:" + start + " end :" + end);
}
/**
* 发送电子邮件到指定收件人.
* @param recipient - 收件人的电子邮件地址
* @param subject - 邮件的主题
* @param body - 邮件的内容
*/
public void sendMail(final String recipient, final String subject, final String body) {
final MimeMessagePreparator preparator = new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage)
throws MessagingException, UnsupportedEncodingException {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setTo(recipient);
message.setFrom(senderMail, senderName);
message.setSubject(subject);
message.setText(body, true);
}
};
new Thread(new Runnable() {
public void run() {
mailSender.send(preparator);
LOGGER.info(String.format("An Email{Recipient: %s, Subject: %s} has been sent.",
new Object[] {recipient, subject}));
}
}).start();
}
/**
* 发送邮件
*
* @param toUser 收件人邮件地址
* @param subject 标题
* @param text 正文
* @return
*/
@Override
public boolean sendMail(String toUser, String subject, String text) {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(serverMail);
helper.setTo(toUser);
helper.setSubject(subject);
helper.setText(text, true);
javaMailSender.send(message);
log.info("发送邮件to:{},主题:{},内容:{}", toUser, subject, text);
} catch (Exception e) {
log.error("", e);
return Boolean.FALSE;
}
return Boolean.TRUE;
}
@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, StandardCharsets.UTF_8.name());
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent email to User '{}'", to);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
@Override
public void sendMailWithTemplate(final TemplateMailTO mailParameters) throws MailException {
MimeMessagePreparator preparator = new MimeMessagePreparator() {
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setTo(mailParameters.getToMailAddress());
message.setFrom(mailParameters.getFromMailAddress());
message.setSubject(mailParameters.getSubject());
if (mailParameters.hasCcMailAddress()) {
message.setCc(mailParameters.getCcMailAddress());
}
if (mailParameters.hasReplyTo()) {
message.setReplyTo(mailParameters.getReplyTo());
}
String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, mailParameters.getTemplateLocation(), mailParameters.getTemplateProperties());
log.debug("*** TEST text='" + text + "'");
message.setText(text, true);
message.setValidateAddresses(true);
}
};
this.mailSender.send(preparator);
}
@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, StandardCharsets.UTF_8.name());
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent email to User '{}'", to);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
private String addResourcesInMessage(final MimeMessageHelper mailMessage, final String htmlText) throws Exception {
final Document document = Jsoup.parse(htmlText);
final List<String> resources = new ArrayList<>();
final Elements imageElements = document.getElementsByTag("img");
resources.addAll(imageElements.stream()
.filter(imageElement -> imageElement.hasAttr("src"))
.filter(imageElement -> !imageElement.attr("src").startsWith("http"))
.map(imageElement -> {
final String src = imageElement.attr("src");
imageElement.attr("src", "cid:" + src);
return src;
})
.collect(Collectors.toList()));
final String html = document.html();
mailMessage.setText(html, true);
for (final String res : resources) {
final FileSystemResource templateResource = new FileSystemResource(new File(templatesPath, res));
mailMessage.addInline(res, templateResource, getContentTypeByFileName(res));
}
return html;
}
/**
* 发送带附件的邮件
* @param to
* @param subject
* @param content
* @param filePathList
* @throws MessagingException
*/
public void sendAttachmentMail(String to, String subject, String content, String[] filePathList) throws MessagingException {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
for (String filePath: filePathList) {
System.out.println(filePath);
FileSystemResource fileSystemResource = new FileSystemResource(new File(filePath));
String fileName = fileSystemResource.getFilename();
helper.addAttachment(fileName, fileSystemResource);
}
javaMailSender.send(message);
}
/**
* 发送html内容
* */
@GetMapping("/sendHtmlMail")
public String sendHtmlMail(){
MimeMessage message=null;
try{
message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(sendUser);
helper.setTo("[email protected]");
helper.setSubject("主题邮件");
StringBuilder sb=new StringBuilder();
sb.append("<h1>尊敬的客户您好!</h1>")
.append("<p>欢迎您访问我的博客 www.fishpro.com.cn</p>");
helper.setText(sb.toString(),true);
}catch (Exception e){
e.printStackTrace();
return "fail";
}
mailSender.send(message);
return "success";
}
/**
* 发送正文中有静态资源的邮件
*
* @param to 收件人地址
* @param subject 邮件主题
* @param content 邮件内容
* @param rscPath 静态资源地址
* @param rscId 静态资源id
* @param cc 抄送地址
* @throws MessagingException 邮件发送异常
*/
@Override
public void sendResourceMail(String to, String subject, String content, String rscPath, String rscId, String... cc) throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
if (ArrayUtil.isNotEmpty(cc)) {
helper.setCc(cc);
}
FileSystemResource res = new FileSystemResource(new File(rscPath));
helper.addInline(rscId, res);
mailSender.send(message);
}
@SneakyThrows
public void sendHtml(String subjct, String text, String... to) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
messageHelper.setFrom(from);
messageHelper.setTo(to);
messageHelper.setSubject(subjct);
// html格式,第二个参数为true
messageHelper.setText(text, true);
// 附件
// messageHelper.addAttachment
jmsTool.sendMessage(JMSType.SEND_MAIL, mimeMessage);
}
@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, CharEncoding.UTF_8);
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent email to User '{}'", to);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, StandardCharsets.UTF_8.name());
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent email to User '{}'", to);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
/**
* 发送正文中有静态资源的邮件
*
* @param to 收件人地址
* @param subject 邮件主题
* @param content 邮件内容
* @param rscPath 静态资源地址
* @param rscId 静态资源id
* @param cc 抄送地址
* @throws MessagingException 邮件发送异常
*/
@Override
public void sendResourceMail(String to, String subject, String content, String rscPath, String rscId, String... cc) throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
if (ArrayUtil.isNotEmpty(cc)) {
helper.setCc(cc);
}
FileSystemResource res = new FileSystemResource(new File(rscPath));
helper.addInline(rscId, res);
mailSender.send(message);
}
@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, StandardCharsets.UTF_8.name());
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent email to User '{}'", to);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
@Override
public void run() {
javaMailSender.send(new MimeMessagePreparator() {
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
Validate.notEmpty(user.getEmail());
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
messageHelper.setTo(user.getEmail());
messageHelper.setSentDate(new Date());
messageHelper.setSubject("Please active your account");
Map<String, Object> root = new HashMap<String, Object>();
root.put("properties", properties);
root.put("user", user);
messageHelper.setText(TemplateContentProcessor.processTemplateWithFile("register-notification.ftl", root), true);
}
});
}
/**
* 发送附件
*
* @param to
* @param subject
* @throws javax.mail.MessagingException
*/
public void sendMailWithAttachment(String from ,String[] to, String subject) throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
// use the true flag to indicate you need a multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true, StandardCharsets.UTF_8.toString());
helper.addAttachment("show_name.jpg", new FileSystemResource(new File("d:/email.jpg")));
/**
*邮件内容
*/
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText("my text", true);
mailSender.send(message);
}
private String addResourcesInMessage(final MimeMessageHelper mailMessage, final String htmlText) throws Exception {
final Document document = Jsoup.parse(htmlText);
final List<String> resources = new ArrayList<>();
final Elements imageElements = document.getElementsByTag("img");
resources.addAll(imageElements.stream()
.filter(imageElement -> imageElement.hasAttr("src"))
.filter(imageElement -> !imageElement.attr("src").startsWith("http"))
.map(imageElement -> {
final String src = imageElement.attr("src");
imageElement.attr("src", "cid:" + src);
return src;
})
.collect(Collectors.toList()));
final String html = document.html();
mailMessage.setText(html, true);
for (final String res : resources) {
final FileSystemResource templateResource = new FileSystemResource(new File(templatesPath, res));
mailMessage.addInline(res, templateResource, getContentTypeByFileName(res));
}
return html;
}
@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, CharEncoding.UTF_8);
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent email to User '{}'", to);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
public void sendAttachmentsMail(String toMail,String subject,String content,String filePath) {
MimeMessage message = sender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(formMail);
helper.setTo(toMail);
helper.setSubject(subject);
helper.setText(content, true);
FileSystemResource file = new FileSystemResource(new File(filePath));
String fileName = filePath.substring(filePath.lastIndexOf("/"));
helper.addAttachment(fileName, file);
sender.send(message);
logger.info("发送给"+toMail+"带附件的邮件已经发送。");
} catch (MessagingException e) {
e.printStackTrace();
logger.error("发送给"+toMail+"带附件的邮件时发生异常!", e);
}
}
/**
* <p>描述:采用Velocity模板的富文本email</p>
* @param to
* @param spittle
* @throws MessagingException
*/
public void sendRichEmailWithVelocity(String to, Spittle spittle) throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
String spitterName = spittle.getSpitter().getFullName();
helper.setFrom("[email protected]");
helper.setTo(to);
helper.setSubject("New spittle from " + spitterName);
Map<String, Object> model = new HashMap<String, Object>();
model.put("spitterName", spitterName);
model.put("spittleText", spittle.getText());
String emailText = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
"emailTemplate.vm", "UTF-8", model);
helper.setText(emailText, true);
ClassPathResource couponImage = new ClassPathResource("/collateral/coupon.jpg");
helper.addInline("spitterLogo", couponImage);
mailSender.send(message);
}
public void sendBulk(EmailPayload emailPayload) throws MessagingException {
// Prepare the evaluation context
final Context ctx = new Context(emailPayload.getLocale());
ctx.setVariables(emailPayload.getBody());
// Prepare message using a Spring helper
final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, "UTF-8");
message.setSubject(emailPayload.getSubject());
message.setTo(emailPayload.getRecipientEmail());
// Create the HTML body using Thymeleaf
final String htmlContent = this.htmlTemplateEngine.process(emailPayload.getTemplateName(), ctx);
message.setText(htmlContent, true /* isHtml */);
// Send email
this.mailSender.send(mimeMessage);
}
/**
*
* @param toEmailAddress
* @param ccEmailAdress
* @param emailSubject
* @param emailHtmlBodyText
*/
public void sendEmail(final String toEmailAddress,
final String ccEmailAdress,
final String emailSubject,
final String emailHtmlBodyText) {
MimeMessagePreparator preparator = new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setTo(toEmailAddress);
message.setCc(ccEmailAdress);
message.setSubject(emailSubject);
message.setText(emailHtmlBodyText, true);
}
};
mailSender.send(preparator);
}