发送邮件的封装类:

  1. package com.email;
  2.  
  3. import java.util.Properties;
  4.  
  5. import javax.mail.Authenticator;
  6. import javax.mail.MessagingException;
  7. import javax.mail.PasswordAuthentication;
  8. import javax.mail.Session;
  9. import javax.mail.internet.InternetAddress;
  10. import javax.mail.internet.MimeMessage;
  11.  
  12. import org.springframework.mail.javamail.MimeMessageHelper;
  13.  
  14. public class Email {
  15. public MimeMessage message;
  16. public MimeMessageHelper creatEmail(String host, String port, String user, String pw) throws MessagingException{
  17. // 创建Properties 类用于记录邮箱的一些属性
  18. final Properties props = new Properties();
  19. // 表示SMTP发送邮件,必须进行身份验证
  20. props.put("mail.smtp.auth", "true");
  21. //开启ttl加密
  22. props.put("mail.smtp.starttls.enable", "true");
  23. //此处填写SMTP服务器
  24. props.put("mail.smtp.host", host);
  25. //端口号,QQ邮箱给出了两个端口,但是另一个我一直使用不了,所以就给出这一个587
  26. props.put("mail.smtp.port", port);
  27. // 此处填写你的账号
  28. props.put("mail.user", user);
  29. // 此处的密码就是前面说的16位STMP口令
  30. props.put("mail.password", pw);
  31.  
  32. // 构建授权信息,用于进行SMTP进行身份验证
  33. Authenticator authenticator = new Authenticator() {
  34.  
  35. protected PasswordAuthentication getPasswordAuthentication() {
  36. // 用户名、密码
  37. String userName = props.getProperty("mail.user");
  38. String password = props.getProperty("mail.password");
  39. return new PasswordAuthentication(userName, password);
  40. }
  41. };
  42. // 使用环境属性和授权信息,创建邮件会话
  43. Session mailSession = Session.getInstance(props, authenticator);
  44. // 创建邮件消息
  45. message = new MimeMessage(mailSession);
  46. MimeMessageHelper helper = null;
  47. // 设置发件人
  48. InternetAddress form = new InternetAddress(
  49. props.getProperty("mail.user"));
  50. try {
  51. helper = new MimeMessageHelper(message,true,"utf-8");
  52. helper.setFrom(form);
  53. } catch (MessagingException e) {
  54. e.printStackTrace();
  55. }
  56. return helper;
  57. }
  58. }

调用方法:发送邮件

  1. @RequestMapping(value = "/sendEmail", method = RequestMethod.POST)
  2. @ResponseBody
  3. public ArrayList sendEmail(@RequestBody HashMap body) throws MessagingException{
  4. Email email = new Email();
  5. MimeMessageHelper msgHelper = email.creatEmail("邮箱发信服务器地址", "端口", "发件邮箱", "密码");
  6. msgHelper.setTo((String)body.get("toEmail"));
  7. msgHelper.setSubject("主题");
  8. msgHelper.setText("内容");
  9. Transport.send(email.message);
  10. ArrayList ls = new ArrayList();
  11. ls.add("OK");
  12. return ls;
  13. }

Java发送邮件----自己封装的方法的更多相关文章

  1. 第三节 java 函数的封装方法 以及 访问封装内容

    从我们的选择排序和冒泡排序里我们可以看到有很多相同的代码, 我们 可以把这些相同的代码提取出来封装为方法:比如我们的判 断交换和遍历输出: 抽取1: public static void PanDua ...

  2. java发送邮件基础方法(另附部分主流邮箱服务器地址、端口及设置方法)

    java发送邮件基础方法,可通过重载简化参数 import java.io.File; import java.io.UnsupportedEncodingException; import java ...

  3. Java发送邮件,所遇到的常见需求

    明天要做关于发送邮件的接口,虽然我之前已用Java Mail做过许多关于邮件的发送.但同事说有点难点,虽我还不知难点在哪,还是要复习下.凡事预则立,不预则废嘛~ 所需的包: Java Mail : 目 ...

  4. JAVA中发送电子邮件的方法

    JAVA中发送邮件的方法不复杂,使用sun的JavaMail的架包就可以实现.  一.下载JavaMail的架包,并导入项目中,如下: 二.附上代码例子,如下: 1.在main函数中对各项参数进行赋值 ...

  5. Java发送邮件--web.xml配置,Java代码配置

    前言:我目前总结的使用java发送邮件的方式有两种,分别是在spring框架xml配置文件使用bean标签,另一种方法是把发送功能封装成一个对象,废话不多说上代码, 边看代码边讲解,希望对需要的人能有 ...

  6. Java数据库连接池封装与用法

    Java数据库连接池封装与用法 修改于抄袭版本,那货写的有点BUG,两个类,一个用法 ConnectionPool类: package com.vl.sql; import java.sql.Conn ...

  7. Java—继承、封装、抽象、多态

    类.对象和包 1) 面向对象编程(Object Oriented Programming ,简称 OOP):20世纪70年代以后开始流行. 2) 结构化编程与面向对象编程的区别: A. 在结构化编程中 ...

  8. Java中的封装

    在前面的一些日子里,一只都在学习C#语言,使用C#在做一些小项目的,今天转到了Java的学习,还是感觉有点的不习惯,没有以前的中文界面的,全是英文.写起代码来都一直保持着C#中的编码的习惯,但是学习J ...

  9. 使用PHP发送邮件的两种方法

    使用PHP发送邮件的两种方法 May242013 作者:Jerry Bendy   发布:2013-05-24 22:25   分类:PHP   阅读:2,107 views   抢沙发     今天 ...

随机推荐

  1. php+croppic.js实现剪切上传图片

    最近需要实现裁剪图片上传,想起之前公司用到的一个插件,却不知道叫什么名字了. 在网上找了有些时间,最终找到了这个网站. http://www.croppic.net/ 因为官网文档全部都是英文,所以看 ...

  2. (转)CocoaPods

    本文转自http://nshipster.cn/cocoapods/ 文明是建立在道路,桥梁,运河,下水道,管线,电线和光纤这些基础设施之上的.只要设计和施工得当,它们可以帮助社会成倍的发展. 唯一的 ...

  3. (ADO.NET)关于C#中“配置”sqlite问题

    配置打引号,只是因为觉得只是一些小问题,在此记录一下,第一次遇到还真有点手足无措,昨天到今天~终于可以开始放肆的写sqlite了. 好,第一个问题是引用已下载的system.data.sqlite.d ...

  4. optparser 模块 提取IP,端口,用户名,密码参数模板

    import optparse #class FtpClient(object): #自定义类可以自己修改 '''ftp客户端''' #def __init__(self): parser = opt ...

  5. 6 json和ajax传递api数据

    1 2 3 4 https://swapi.co/ <h1>Hello Reqwest!</h1> <script> var a = {} reqwest({ ur ...

  6. How to check if Visual Studio 2005 SP1 is installed

    How to check if Visual Studio 2005 SP1 is installed Check the following registry key. HKEY_LOCAL_MAC ...

  7. couchbase map reduce

    map function(){emit(null,2);} reduce function(key, values, rereduce){ var response = {"a": ...

  8. RSA进阶之低加密指数攻击

    适用场景: n很大,4000多位,e很小,e=3 一般来说,e选取65537.但是在RSA加密的时候有可能会选用e=3(不要问为什么,因为选取e =3省时省力,并且他可能觉得n在4000多位是很安全的 ...

  9. git和github基础入门

    一.git: 1.安装配置git: 1.1从官网或者该网址处下载:https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit 1.2安装,一路nex ...

  10. 软工实践第八次作业——UML设计

    本次作业博客 团队组成 临时组长:何裕捷 组员:蔡子阳,陈德斌,胡青元,李麒,高裕翔,王焕仁,黄培鑫 UML 用例图 描述的部分: 1 这里是用户个人管理系统的用例图 面临的问题: 1 面临用户登录注 ...