`

发送邮件

    博客分类:
  • java
阅读更多
import java.util.HashMap;
import java.util.Map;

import javax.mail.BodyPart;
import javax.mail.MessagingException;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import org.springframework.core.io.ClassPathResource;
import org.springframework.core.task.TaskExecutor;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.MimeMessagePreparator;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;

import freemarker.template.Template;
public class MailService {
private JavaMailSender sender;

public void setSender(JavaMailSender sender) {
  this.sender = sender;
}
public void sendSimpleMail(int userId) {
  SimpleMailMessage msg = new SimpleMailMessage();
  msg.setFrom("masterspring2@sina.com");
  msg.setTo("masterspring2@gmail.com");
  msg.setReplyTo("masterspring2@sina.com");
  msg.setFrom("masterspring2@gmail.com");
  msg.setTo("masterspring2@sina.com");
  msg.setReplyTo("masterspring2@gmail.com");
  msg.setCc("masterspring2@163.com");
  msg.setSubject("注册成功");
  msg.setText("恭喜,您在宝宝淘论坛已经注册成功!您的用户ID为:" + userId);
  sender.send(msg);
}
public void sendHtmlMail(int userId) throws MessagingException {
  MimeMessage msg = sender.createMimeMessage();
  MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8");
  helper.setFrom("masterspring2@sina.com");
  helper.setTo("masterspring2@gmail.com");
  helper.setSubject("注册成功");
  String htmlText = "<html><head>"
    + "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"
    + "</head><body>" + "恭喜,您在宝宝淘论坛已经注册成功!您的用户ID为:"
    + "<font size='20' size='30'>" + userId + "</font>"
    + "<body></html>";
  helper.setText(htmlText, true);
  sender.send(msg);
}

public void sendInlineMail() throws MessagingException {
  MimeMessage msg = sender.createMimeMessage();
  MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
  helper.setFrom("masterspring2@sina.com");
  helper.setTo("masterspring2@gmail.com");
  helper.setSubject("注册成功");
  String htmlText = "<html><head>"
    + "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"
    + "</head><body>" + "欢迎访问宝宝淘论坛!</hr>"
    + "<div><img src=\"cid:img01\"></img></div>" + "<body></html>";
  helper.setText(htmlText, true);
  ClassPathResource img = new ClassPathResource("bbt.gif");
  helper.addInline("img01", img);
  sender.send(msg);
}

public void sendAttachmentMail() throws Exception {
  MimeMessage msg = sender.createMimeMessage();
  MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
  helper.setFrom("masterspring2@sina.com");
  helper.setTo("masterspring2@gmail.com");
  helper.setSubject("注册成功");
  helper.setText("欢迎访问宝宝淘论坛!");
  ClassPathResource file1 = new ClassPathResource("bbt.zip");
  helper.addAttachment("file01.zip", file1.getFile());
  ClassPathResource file2 = new ClassPathResource("file.doc");
  helper.addAttachment("file02.doc", file2.getFile());
  sender.send(msg);
}

public void sendAlternativeMail() throws Exception {
  MimeMessagePreparator mmp = new MimeMessagePreparator() {
   public void prepare(MimeMessage msg) throws Exception {
    MimeMessageHelper helper = new MimeMessageHelper(msg, true,
      "utf-8");
    helper.setFrom("masterspring2@sina.com");
    helper.setTo("masterspring2@gmail.com");
    helper.setSubject("注册成功");

    MimeMultipart mmPart = new MimeMultipart("alternative");
    msg.setContent(mmPart);

    BodyPart plainTextPart = new MimeBodyPart();
    plainTextPart.setText("欢迎访问宝宝淘论坛!");
    mmPart.addBodyPart(plainTextPart);

    BodyPart htmlPart = new MimeBodyPart();
    String htmlText = "<html><head>"
      + "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"
      + "</head><body><font size='20' size='30'>"
      + "欢迎访问宝宝淘论坛</font>" + "<body></html>";
    htmlPart.setContent(htmlText, "text/html;charset=utf-8");
    mmPart.addBodyPart(htmlPart);
   }
  };
  sender.send(mmp);
}

private FreeMarkerConfigurer freeMarkerConfigurer = null;
public void setFreeMarkerConfigurer(
   FreeMarkerConfigurer freeMarkerConfigurer) {
  this.freeMarkerConfigurer = freeMarkerConfigurer;
}
public void sendTemplateMail(int userId) throws MessagingException {

  MimeMessage msg = sender.createMimeMessage();
  MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8");
  helper.setFrom("masterspring2@sina.com");
  helper.setTo("masterspring2@gmail.com");
  helper.setSubject("注册成功:基于模板");
  String htmlText = getMailText(userId);
  helper.setText(htmlText, true);
  sender.send(msg);
}
private String getMailText(int userId) {
  String htmlText = null;
  try {
   Template tpl = freeMarkerConfigurer.getConfiguration().getTemplate(
     "registerUser.ftl");
   Map map = new HashMap();
   map.put("userId", userId);
   htmlText = FreeMarkerTemplateUtils.processTemplateIntoString(tpl,
     map);
  } catch (Exception e) {
   throw new RuntimeException(e);
  }
  return htmlText;
}

private TaskExecutor taskExecutor;
public void setTaskExecutor(TaskExecutor taskExecutor) {
  this.taskExecutor = taskExecutor;
}
public void sendAsyncMail(final int userId) {
  taskExecutor.execute(new Runnable() {
   public void run() {
    try {
     sendTemplateMail(userId);
     System.out.println("邮件发送成功!");
    } catch (Exception e) {
     System.out.println("邮件发送失败!,异常信息:" + e.getMessage());
    }
   }
  });
}
}

分享到:
评论

相关推荐

    在Qt中发送邮件的库。

    发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件...

    .net465端口发送邮件

    .net 465端口发送邮件,开发过程中,经常会使用到发送邮件功能,而我们在使用阿里云服务器发送邮件时,由于安全原因,阿里云禁用掉了25端口,于是就造成了我们在本地使用25端口发送邮件时是好的,一放到服务器上就...

    快发邮件批处理 用于快速群发邮件

    快发邮件批处理主要用于批量自动登录网站邮箱,多线程同时登录发送邮件,不管邮箱是否支持POP3都可以使用。对于账号为139移动邮箱还可以发送邮箱中的手机短信,及大的方便了不支持POP3收发邮件的邮箱实现批量发送...

    java发送邮件工具

    java发送邮件工具类,用于java程序实现邮件的发送功能

    net6发送邮件demo

    net6发送邮件demonet6发送邮件demo

    用oracle存储过程发邮件

    用oracle发邮件,主要是运用数据库存储过程实现发送邮件的功能。

    基于邮件交换(MX)与SMTP协议发送邮件

    基于邮件交换(MX)与SMTP协议发送邮件,可以无须SMTP服务器中转直接将E-Mail电子邮件发送到对方邮箱,代码中提供了网卡信息获取类,可以获取本机IP地址、子网掩码、DNS、Wins、网卡MAC地址等相关信息;还提供了SMTP协议...

    Python发邮件代码

    Python发邮件代码

    实现网页发邮件

    此index.html文件可以通过html网页发邮件。

    服务器无法发邮件的问题彻底解决了

    在邮件没法发送,服务器已经屏蔽所有发邮件函数的时候,照样可以发送邮件的方法。绝对有效

    自动发送邮件代码!

    自动发送邮件代码,自己测试成功!需要的朋友可以借鉴一下!

    java发邮件 java发email

    java发送电子邮件,程序和jar包都在里面,使用方法也有,程序可直接使用,直接改成自己的邮箱和密码就能发送了,解决了很多人java发送邮件不成功的烦恼

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码 查看debug 邮件处理过程发现邮件头没有编译, 内容是base64编码,所以邮箱收不到或者收到的是base64编码后的一堆乱码,

    ant发送邮件依赖jar包.rar

    ant发送邮件依赖jar包.rar

    thinkphp框架使用PHPMailer发送邮件

    使用方法: ... 第二步,在 config文件里新增 如下配置,或者干脆在action里用C函数设置临时配置亦可. ...SendMail('350680013@qq.com','我能用phpmailer发送邮件了','谢谢您。。。',C('MAIL_SENDER')); PS:欢迎下载使用

    诛仙服务端发送邮件

    诛仙服务端发送邮件,开发服务端的必须要的程序

    多线程发邮件

    简单易用的多线程发邮件。其中用的callble,里面的发送的邮件是固定的,利用的newFixedThreadPool。你可以自己调整成其他的线程池,原理一样。

    使用JAVAMail代发邮件

    使用JAVAMail代发邮件 资源源于不但搜索,自由源于不但努力

    JAVA邮件发送工具类(支持同步和异步发送邮件以及附件信息)

    JAVA邮件发送工具类(支持同步和异步发送邮件以及附件信息),支持多个抄送邮件发送。

    C# SMTP 匿名发送邮件解决方案

    前段时间公司有项目需要使用C#的SMTP 发邮件功能,在网上搜索了下,网上没有一个完整的解决方案,都是东说语句西说一句,几乎扯淡,对于我们这些伟大的程序员来说,就是完整的解决版本,所以直接上代码是最现实。...

Global site tag (gtag.js) - Google Analytics