一、JavaMail概述与入门

JavaMail-java提供的一组API,用来收发邮件  中间有个邮件服务器:

  客户端发给邮件服务器,另外一收件客户端从邮件服务器下载(最稳的还是163,QQ有点不靠谱)

  SMTP协议 port 25
    SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。
    它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。
    SMTP 协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。
    SMTP 服务器就是遵循SMTP协议的发送邮件服务器。SMTP认证,简单地说就是要求必须在提供了账户名
    和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的
    目的是为了使用户避免受到垃圾邮件的侵扰。
    SMTP[2] 已是事实上的E-Mail传输的标准。

  POP协议 POP3邮局协议第三版 port 110
    POP邮局协议负责从邮件服务器中检索电子邮件。

  IMAP协议
    互联网信息访问协议(IMAP)是一种优于POP的新协议。

    (了解)teInet发邮件(BASE64 sun包下的,java javax的底层依赖,不建议使用,报warning)使用禁止的类略,百度。

  使用JavaMail发送:第一步为导包,需要两个包:mail.jar_activation.jar
  核心类
    Session :与Connection类似,但不同于web的HttpSession 步骤偏多
    MimeMessage :邮件对象
    TransPort :用来发邮件
    发带附件与不带附件(多部件主体)MimeMultiPart MimeBodyPart

  示例:

package cn.itcaat.mail;

import java.io.File;
import java.io.IOException;
import java.util.Properties; import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; import org.junit.Test; /**
* 测试无附件的发邮件的演示
* @author jiangbei01
*
*/
public class Demo01 {
@Test
public void fun1() throws AddressException, MessagingException{
/*
* 1.得到session
*/
Properties props = new Properties();
//主机名
props.setProperty("mail.host", "smtp.163.com");
//是否需要认证
props.setProperty("mail.smtp.auth", "true");
Authenticator auth = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//返回值类型具有一般构造器
return new PasswordAuthentication("ttbeifen1", "tt2924");
}
};
Session session = Session.getInstance(props, auth);
//得到邮件对象
MimeMessage msg = new MimeMessage(session);
//抄送暗送此处略
msg.setFrom(new InternetAddress("ttbeifen1@163.com"));//发件人
msg.setRecipients(RecipientType.TO, "775992759@qq.com");//收件人
msg.setSubject("这是来自DAY22的测试");
msg.setContent("炸鸡和啤酒", "text/html;charset=utf-8"); //发送
Transport.send(msg); }
}

二、邮件组件的运用

  apache-commons-email的使用请参考实用工具类随笔http://www.cnblogs.com/jiangbei/p/7659886.html

  jodd-mail由于未测试成功有待补充...

  hutool也发布新版本了,可以更加简单的发送邮件了。

JavaWeb基础—邮件发送的更多相关文章

  1. JavaWeb 之邮件发送

    1. 邮件协议概述 SMTP(Simple Mail Transfer Protocol, 简单邮件传输协议) 发邮件协议; POP3(Post Office Protocol Version 3, ...

  2. C#基础-邮件发送

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. [Java面试三]JavaWeb基础知识总结.

    1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静 ...

  4. JavaWeb基础知识总结

    JavaWeb基础知识总结.   1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供 ...

  5. J2EE 邮件发送那些事儿

    距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...

  6. [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作

    这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ...

  7. 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】

    一.邮件发送 1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示. SMTP协议使用的端口号:25 rfc821详细记载了该协议的相关信息 (1)使用telnet发送邮件(使用12 ...

  8. .NET常用方法——邮件发送

    邮件发送类文件,可直接使用: 调用方法(实例化.静态调用): 实例化: string exception = ""; SendEmail.SendEmail SE = new Se ...

  9. 邮件发送服务AWS SES,Mailgun以及SendCloud(转)

    原文:http://www.l4zy.com/posts/aws_ses-mailgun-sendcloud.html 电子邮件这一已经诞生很多年的互联网基础服务并没有随着时间的推移而慢慢消亡,实际上 ...

随机推荐

  1. centos 安装golang笔记

    1.使用yum安装 yum install go 这个命令可以将go环境安装到linux上. 2.配置gopath 第一步安装成功的go命令会被放入/usr/lib/golang/bin /usr/l ...

  2. Sublime Text 的使用笔记

    Sublime Text 是一个代码编辑器(Sublime Text 2,3是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器.Sublime Text是由程序员Jon Skinner ...

  3. django中的字段类型

    from http://www.cnblogs.com/lhj588/archive/2012/05/24/2516040.html Django 通过 models 实现数据库的创建.修改.删除等操 ...

  4. PHP CLI模式下echo换行

    近日在执行导库程序的时候,需要在CLI模式下运行程序进行调试,如下图,这是什么鬼?不是我想要的结果 后经过查资料发现代码中执行的输出为 //错误方法实例 echo '其他-683\n'; //正确打开 ...

  5. September 03rd 2017 Week 36th Sunday

    What does it profit a man if he gains the whole world and loses his own soul? 失去灵魂,赢得世界又如何? It matte ...

  6. November 17th 2016 Week 47th Thursday

    Don't cry because it is over. Smile because it happened. 不要因为结束而哭泣:微笑吧,因为我们曾经拥有. My ex-girlfriend ha ...

  7. unix时间戳的转换

    UNIX时间戳转换为日期用函数: FROM_UNIXTIME() select FROM_UNIXTIME(1156219870); 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP() ...

  8. CORS跨域模型浅析及常见理解误区分析

    CORS跨域资源共享是前后端跨域十分常用的一种方案,主要依赖Access-Control-Allow(ACA)系列header来实现一种协商性的跨域交互. 基本模型 其中的具体流程大致可以分为以下几步 ...

  9. Linux上安装ZooKeeper并设置开机启动(CentOS7+ZooKeeper3.4.10)

    1下载Zookeeper 2安装启动测试 2.1上载压缩文件并解压 2.2新建 zookeeper配置文件 2.3安装JDK 2.4启动zookeeper 2.5查看zookeeper的状态 3将Zo ...

  10. Spring-IOC BeanFactory运行时动态注册bean

    在spring运行时,动态的添加bean,dapeng框架在解析xml的字段时,使用到了动态注册,注册了一个实现了FactoryBean类! 定义一个没有被Spring管理的Controller pu ...