一、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. gitlab 启用HTTPS

    NGINX设置 启用HTTPS 警告 Nginx配置会告诉浏览器和客户端,只需在未来24个月通过安全连接与您的GitLab实例进行通信.通过启用HTTPS,您需要至少在24个月内为您的实例提供安全连接 ...

  2. springboot学习网站及博客

    1关于Spring Boot的博客集合https://www.jianshu.com/p/7e2e5e7b32ab 2泥瓦匠BYSocket的Spring Boot系列 https://www.bys ...

  3. leetCode题解 Reverse Words in a String III

    1.题目描述 Given a string, you need to reverse the order of characters in each word within a sentence wh ...

  4. Axure响应式进阶

    Axure响应式进阶 2018年6月2日luodonggan 随大屏幕分辨率普及,网页设计在交互阶段就必须考虑响应式方案,Axure7作为我偏爱的交互设计工具果然也没让大家失望的新增了Adaptive ...

  5. [翻译] USING GIT IN XCODE [3] 在XCODE中使用GIT[3]

    USING GIT IN XCODE MAKING AND COMMITTING CHANGES Once you have a working copy of your project, it’s ...

  6. sudo实例--企业生产环境用户权限集中管理方案实例

    根据角色的不同,给不同的用户分配不同的角色1.创建初级工程师3个,网络工程师1个,中级工程师1个,经理1个      #  批量创建用户 for user in chuji{01..03} net01 ...

  7. docker 自制alpine-lnp镜像

    简单粗暴点吧 jenkins 镜像下载:docker pull jenkins:alpine dockfile 原地址:https://gist.github.com/phith0n/373cc078 ...

  8. Django 通过APNS推送消息

    最近手上一个项目需要通过APNS向app推送消息,由于后端采用drf框架,在github上找了好多模块,最终发现pzanitti大神的推送模块 django-push-notifications 比较 ...

  9. SAP CX Upscale Commerce : SAP全新推出的电商云平台

    大家好,我是Andy Chen,是SAP成都研究院年轻的SAP CX Upscale Commerce (后面将会以Upscale简称)开发团队的一名产品经理.CX的全称是Customer Exper ...

  10. HTML5新增和废弃的标签

    一.废弃的标签 以下的 HTML 4.01 元素在HTML5中已经被删除,虽然浏览器为了兼容性考虑都还支持这些标签,但建议使用新的替代标签,矛盾的是老浏览器对新标签的支持度又不够,视项目的受众对象而定 ...