JavaMail实现发送邮件功能

本文实例为大家分享了JavaMail实现发送邮件功能的具体代码,供大家参考,具体内容如下

用java发邮件,必须要导入新的包

mail.jar – 发邮件的核心包

activation.jar – 对用户和密码加密.

在mail.jar中有三个核心类:

Javax.mail.Session – 是指与邮件服务器会话。整个项目中只要一个就可以了.

Javax.mail.Message(接口)  - 准备发送数据信息。

MimeMessage - 可以设置类型的数据信息。

Transport – 它拥有一个方法可以发送Message。

@Test
 public void sendMail() throws Exception{
  //1,声明properties对象放信息
  Properties props = new Properties();
  //设置连接哪一台服务器
  props.setProperty("mail.host", "smtp.163.com");
  //设置是否认证:
  props.setProperty("mail.smtp.auth", "true");

  //2,声明用户名和密码
  Authenticator auth = new Authenticator(){
   //返回用户名和密码对象
   @Override
   protected PasswordAuthentication getPasswordAuthentication() {
    PasswordAuthentication pa = new PasswordAuthentication("xxxxx@163.com", "123456");
    return pa;
   }
  };
  //3,获取session对象
  Session session = Session.getDefaultInstance(props, auth);
  //设置session为调试模式
  session.setDebug(true);
  //4,声明信息
  MimeMessage mm1 = new MimeMessage(session);
  //5,设置发件人信息
  Address form = new InternetAddress("xxxxx@163.com");
  mm1.setFrom(form);
  //6,设置收件人 ,RecipientType:发送,抄送,密送 类型
  mm1.setRecipient(RecipientType.TO, new InternetAddress("xxx@qq.com"));
  //mm1.setRecipient(RecipientType.CC, new InternetAddress(""));//抄送

  //7,设置主题
  mm1.setSubject("拉面学习通知");
  String cont = "请点击 <a href='http://www.fsy158.com/news/31_207'>官网新闻</a>查看祝您发财";
  mm1.setContent(cont, "text/html;charset=UTF-8");

  //8,发送
  Transport.send(mm1);

 }

其中的mimeType可是text/plain纯文本。

发送附件:

@Test
 public void sendMailWithFile() throws Exception{
 Properties ps = new Properties();
 ps.setProperty("mail.host", "smtp.163.com");
 ps.setProperty("mail.smtp.auth", "true");

 Authenticator auth = new Authenticator(){
  @Override
  protected PasswordAuthentication getPasswordAuthentication() {
  return new PasswordAuthentication("xxx@163.com","xxx.");
  }
 };
 Session session = Session.getDefaultInstance(ps, auth);
 session.setDebug(true);
 MimeMessage msg = new MimeMessage(session);
 Address address = new InternetAddress("xxx@163.com");
 msg.setFrom(address);
 //发送给
 msg.setRecipient(RecipientType.TO, new InternetAddress("xxx@qq.com"));
 msg.setRecipient(RecipientType.BCC, new InternetAddress("xxx@qq.com"));//密送
 msg.setRecipient(RecipientType.CC, new InternetAddress("xxx@qq.com"));//抄送
 msg.setSubject("$激情小视频*免费观看");

 //声明多部件处理
 MimeMultipart mm = new MimeMultipart();

 MimeBodyPart body1 = new MimeBodyPart();
 //设置附件
 DataSource ds1 = new FileDataSource(new File("./img/a.jpg"));
 DataHandler dh1 = new DataHandler(ds1);
 body1.setDataHandler(dh1);
 //必须设置名称
 body1.setFileName(MimeUtility.encodeText("美女.jpg"));

 MimeBodyPart body2 = new MimeBodyPart();
 DataSource ds2 = new FileDataSource(new File("./img/b.jpg"));
 DataHandler dh2 = new DataHandler(ds2);
 body2.setDataHandler(dh2);
 body2.setFileName(MimeUtility.encodeText("美女2.jpg"));

 MimeBodyPart body3 = new MimeBodyPart();
 DataSource ds3 = new FileDataSource(new File("./img/m.mp3"));
 DataHandler dh3 = new DataHandler(ds3);
 body3.setDataHandler(dh3);
 body3.setFileName(MimeUtility.encodeText("小电影.mp3"));

 //添加body到mm
 mm.addBodyPart(body1);
 mm.addBodyPart(body2);
 mm.addBodyPart(body3);

 msg.setContent(mm);

 //设置发送日期
 Calendar c = Calendar.getInstance();
 c.add(Calendar.DATE, -5);
 msg.setSentDate(c.getTime());

 //发送
 Transport.send(msg);
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java使用JavaMail发送邮件的方法

    本文实例讲述了Java使用JavaMail发送邮件的方法.分享给大家供大家参考,具体如下: 代码一.Email_Autherticator.java 服务器验证代码 import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; public class Email_Autherticator extends Authenticator { String username = "你邮箱的用户名"; S

  • 如何使用JavaMail发送邮件

    现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能,用户注册成功之后,就将用户的注册信息以Email的形式发送到用户的注册邮箱当中,实现发送邮件功能就得借助于JavaMail了. 一.搭建开发环境 1.1.创建Web项目 1.2.用户注册的Jsp页面 register.jsp <%@ page language="java" pag

  • 使用JavaMail发送邮件保证成功的方法

    前言 相信大家应该都知道,一般的开放的api给我们调用都会有个返回值或者状态码,来告诉我们执行成功与否.但是JavaMail却没有提供这样一个返回值. 所以在调用JavaMail发送邮件的时候,我们只能通过catch异常的方式来判断邮件是否发送成功.我们认为只要没有异常发生,那么邮件就能发送成功.那么我们就来分析一下JavaMail为什么没有提供返回值,和通过异常判断邮件发送成功状态是否靠谱. JavaMail发送邮件原理 在使用JavaMail进行发送邮件时,我们必须提供一个邮件会话.创建邮件

  • 基于java使用JavaMail发送邮件

    一.邮件的相关概念 邮件协议.主要包括: SMTP协议:Simple Mail Transfer Protocol,即简单邮件传输协议,用于发送电子邮件 POP3协议:Post Office Protocol 3,即邮局协议的第三个版本,用于接收邮件 IMAP协议:Internet Message Access Protocol,即互联网消息访问协议,是POP3的替代协议 --------------------------------------------------------------

  • 基于SSM框架+Javamail发送邮件的代码实例

    本篇介绍基于SSM框架(Spring4.0+SpringMVC+Mybatis)组合的Javamail应用,邮箱的话基于腾讯的QQ邮箱,其实也是Foxmail邮箱 先要了解一下SMTP协议和SSL加密 SMTP:称为简单邮件传输协议(Simple Mail Transfer Protocal),目标是向用户提供高效.可靠的邮件传输.SMTP是一种请求响应的协议,也就是客户机向远程服务器发送请求,服务器响应,监听端口是25,所以其工作模式有两种:发送SMTP,接收SMTP. SSL加密:用来保障浏

  • JavaWeb中使用JavaMail实现发送邮件功能实例详解

    现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能,用户注册成功之后,就将用户的注册信息以Email的形式发送到用户的注册邮箱当中,实现发送邮件功能就得借助于JavaMail了. 一.搭建开发环境 1.1.创建Web项目 1.2.用户注册的Jsp页面 register.jsp <%@ page language="java" pag

  • Java基于JavaMail实现向QQ邮箱发送邮件

    最近项目在做新闻爬虫,想实现这个功能:爬虫某个页面失败后,把这个页面的 url 发到邮箱.最终实现的效果图如下,后期可以加上过滤标签.失败状态码等,方便分类搜索异常. 开发人员可以根据邮件里的 url 和堆栈信息,分析爬虫失败的原因. 是不是服务器 down 了? 还是爬虫的 Dom 解析没有解析到内容? 还是正则表达式对于这个页面不适用? 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 SMTP 服务 注意开启完之后,QQ 邮箱会生成一个授权码,在代码里连接邮箱使用这个授权码而不是原

  • Spring Boot中利用JavaMailSender发送邮件的方法示例(附源码)

    快速入门 在Spring Boot的工程中的pom.xml中引入spring-boot-starter-mail依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 如其他自动化配置模块一样,在完成了依赖引入之后,只需要在applicatio

  • JavaWeb中JavaMail创建邮件和发送邮件

    一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 --用于指明发件人 to字段     --用于指明收件人 subject字段  --用于说明邮件主题 cc字段    -- 抄送,将邮件发送给收件人的同时抄送给另一个收件人,收件人可以看到邮件抄送给了谁 bcc字段 -- 密送,将邮件发送给收件人的同时将邮件秘密发送给另一个收件人,收件人无法看到邮

  • JavaMail入门教程之发送邮件(3)

    JavaMail API中定义了一个java.mail.Transport类,它专门用于执行邮件发送任务,这个类的实例对象封装了某种邮件发送协议的底层实施细节,应用程序调用这个类中的方法就可以把Message对象中封装的邮件数据发送到指定的SMTP服务器.使用JavaMail发送邮件时设计到的主要API之间的工作关系如下所示: 1.从Session对象中获得实现了某种邮件发送协议的Transport对象: 2.使用Session对象创建Message对象,并调用Message对象的方法封装邮件数

随机推荐