使用Javax.mail 发送邮件

详细说明都在代码中:

  1. 引入依赖

      <!--sun定义的一套接收、发送电子邮件的API-->
       <dependency>
         <groupId>javax.mail</groupId>
         <artifactId>mail</artifactId>
         <version>1.4.7</version>
       </dependency>
  1. 编写代码

package com.joyful.auth.service;

import org.springframework.stereotype.Service;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

@Service
public class MailServiceImpl implements MailService {
   /**
    *
    * @param mailTo:发送给谁
    * @param activeCode:发送的激活码
    * @throws Exception
    *
    * javax.mail API使用步骤
    * 1、使用Properties封装连接信息
    * 2、传入Session对象
    * 3、创建邮件实体对象Message
    * 4、使用Transport对象发送邮件
    */
   public void sendEmail(String mailTo, String activeCode) throws Exception {
       //收件人地址
       String recipientAddress = mailTo;
       //发件人账户名
       String senderAccount = "blackjoyful@163.com";
       //发件人账户密码
       String senderPassword = "***************";
       //1、连接邮件服务器的参数配置
       Properties props = new Properties();
       //设置用户的认证方式
       props.setProperty("mail.smtp.auth", "true");
       //设置传输协议
       props.setProperty("mail.transport.protocol", "smtp");
       //设置发件人的SMTP服务器地址
       props.setProperty("mail.smtp.host", "smtp.163.com");
       //2、创建定义整个应用程序所需的环境信息的 Session 对象
       Session session = Session.getInstance(props);
       //设置调试信息在控制台打印出来
       session.setDebug(true);
       //3、创建邮件的实例对象
       Message msg = createMimeMessage(session,recipientAddress,activeCode);
       //4、根据session对象获取邮件传输对象Transport
       Transport transport = session.getTransport();
       //设置发件人的账户名和密码
       transport.connect(senderAccount, senderPassword);

       //如果只想发送给指定的人,可以如下写法
       transport.sendMessage(msg, new Address[]{new InternetAddress(recipientAddress)});

       //5、关闭邮件连接
       transport.close();

  }

   /**
    * 邮件格式
    * @param session
    * @param recipientAddress
    * @return
    * @throws Exception
    */
   public static MimeMessage createMimeMessage(Session session, String recipientAddress, String md5)
           throws  Exception{

       //1.创建一封邮件
       MimeMessage message=new MimeMessage(session);

       //发件人地址
       String senderAddress = "blackjoyful@163.com";
       message.setFrom(new InternetAddress(senderAddress));

       //4.Subject 邮件主题
       message.setSubject("[I旅行]用户激活","UTF-8");
       //5.邮件正文
       message.setContent("账号   :"+recipientAddress+",   激活码是   :"+md5,"text/html;charset=UTF-8");

       //6..设置发件时间
       message.setSentDate(newDate());

       //7.保存设置
       message.saveChanges();

       returnmessage;

  }
}

使用Javax.mail 发送邮件的更多相关文章

  1. javax.mail 发送邮件异常

    一.运行过程抛出异常 1.Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/ ...

  2. Android 开发 使用javax.mail发送邮件。

    简介 sun公司开源的邮件发送工具. 依赖 implementation 'com.sun.mail:android-mail:1.6.0' implementation 'com.sun.mail: ...

  3. javax.mail 发送邮件 , greenMail 测试 , spring

    发送邮件接口: package com.manxu.archetype.account.email; import javax.security.auth.login.AccountException ...

  4. 1.使用javax.mail, spring的JavaMailSender,springboot发送邮件

    一.java发邮件 电子邮件服务器:这些邮件服务器就类似于邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中,按功能划分有两种类型 SMTP邮件服务器:用户替用户发送邮件和接 ...

  5. Java使用javax.mail.jar发送邮件并同意发送附件

    因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一 ...

  6. javamail发送邮件及错误解决方法javax.mail.AuthenticationFailedException: failed to connect, no password specified?

    javamail发送邮件及错误解决方法javax.mail.AuthenticationFailedException: failed to connect, no password specifie ...

  7. 使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.MessagingException: Exception reading response

    使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.Messagin ...

  8. Jenkins - 解决集成 jmeter+ant 发送邮件时报错:java.lang.ClassNotFoundException: javax.mail.internet.MimeMessage

    jenkins + jmeter +ant 发送邮件失败 问题原因 其实就是缺失 jar 包,导致某些类找不到了 解决方案 点击该网站,下载commons-email.jar包 点击该网站,下载act ...

  9. spring -java.lang.NoClassDefFoundError: javax/mail/MessagingException

    今天遇到这个问题,网上找了半天,终于解决了,最后记录一下. spring集成了mail,于是就测试了下,结果报了java.lang.NoClassDefFoundError: javax/mail/M ...

随机推荐

  1. 虹软人脸识别—版本升级接口修改说明(C#)

    自虹软发布了免费.离线版本人脸识别SDK,在Github上陆续分享了各个版本对应的 C# Demo.因为公司项目一直在使用虹软的SDK,因此每当虹软官网有新版本发布,我都会进行了解,并结合Demo进行 ...

  2. 微信商户H5支付申请不通过被驳回,拒绝原因提示:网站存在不实内容或不安全信息

    一.H5支付简介及使用场景说明 H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付.主要用于触屏版的手机浏览器请求微信支付 ...

  3. React的useEffect与useLayoutEffect执行机制剖析

    引言 useEffect和useLayoutEffect是React官方推出的两个hooks,都是用来执行副作用的钩子函数,名字类似,功能相近,唯一不同的就是执行的时机有差异,今天这篇文章主要是从这两 ...

  4. 2020-04-13:TCP协议本身会导致什么样的安全问题?

    福哥答案2020-04-14: 洪泛攻击    

  5. C#LeetCode刷题之#118-杨辉三角(Pascal‘s Triangle)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3688 访问. 给定一个非负整数 numRows,生成杨辉三角的前 ...

  6. JS实例-DOM查询

    <!DOCTYPE html><html lang="en"><head> <meta charset="utf-8" ...

  7. 史上最全且最简洁易懂的Activity启动流程解析

    Activity的启动流程是一个资深Android工程师必须掌握的内容,也是高职级面试中的高频面试知识点,无论是从事应用层开发,还是Framework开发,其重要性都无需我多言.而要真正理解它,就不可 ...

  8. 求正整数2和n之间的完全数

    [题目描述] 求正整数22和nn之间的完全数(一行一个数). 完全数:因子之和等于它本身的自然数,如6=1+2+36=1+2+3 [输入] 输入n(n≤5000)n(n≤5000). [输出] 一行一 ...

  9. 使用Postman工具做接口测试(五)——生成随机参数

    引言 我们平时使用最多的接口调试工具就是postman了,比如开发将一个接口给到你,你想看看接口是否正常.最常用的方法就是用postman去调一下.如果通,就写接口测试用例,反之,将开发打一顿吧o(* ...

  10. C#实践设计模式原则SOLID

    理论跟实践的关系,说远不远,说近不近.能不能把理论用到实践上,还真不好说.   通常讲到设计模式,一个最通用的原则是SOLID: S - Single Responsibility Principle ...