一.概述

1.邮件协议:

SMTP:(Simple Mail Transfer Protocol,简单邮件传输协议)发邮件协议;

POP3:(Post Office Protocol Version 3,邮局协议第3版)收邮件协议;

IMAP:(Internet Message Access Protocol,因特网消息访问协议)收发邮件协议

2.邮件服务器名称

smtp服务器的端口号为25,服务器名称为smtp.xxx.xxx。

pop3服务器的端口号为110,服务器名称为pop3.xxx.xxx。

例如:

>163:smtp.163.com和pop3.163.com;

>126:smtp.126.com和pop3.126.com;

>qq:smtp.qq.com和pop3.qq.com;

>sohu:smtp.sohu.com和pop3.sohu.com;

...

sina:smtp.sina.com和pop3.sina.com。

二.JavaMail之HelloWrold

Java Mail是由SUN公司提供的专门针对邮件的API,主要Jar包:mail.jar、activation.jar。

  发邮件主要分为三步:1.获取Session(重点是构造器中传递的两个参数)

            2.创建MimeMessage对象(把session作为参数传入)

            3.发送邮件

  public static void mailDemo(){

    //获取Session

    Properties props = new Propties();

    props.setProperty("mail.host","smtp.163.com");//设置服务器主机名

    props.setProperty("mail.smtp.auth","true");//设置需要认证

  

    Authenticator auth = new Authenticator(){

     protected PasswordAuthentication getPasswordAuthentication(){

        return new PasswordAuthentication("emailAccount","password");//设置邮箱账号和密码

      }   

    }

    Session session = new Session(props,auth);

   //创建MimeMessage

  MimeMessage msg = new MimeMessage(session);

  msg.setFrom(new InternetAddress("邮箱地址"));//设置发件人

  msg.setRecipients(RecipientType.TO,"邮箱地址");//设置收件人

  msg.setRecipients(RecipientTYpe.CC,"邮箱地址");//设置抄送

  msg.setRecipients(RecipientType.BCC,"邮箱地址");//设置暗送

  //-----------------------------------------------------

    //不带附件

   msg.setSubject("邮件主题");

   msg.setContent("邮件内容","text/html;charset=utf-8");

  //------------------------------------------------------

    //带附件

   MimeMultipart list = new MimeMultipart();//创建多部件内容

    MimeBodyPart part1 = new MimeBodyPart();//创建主体部件

    part1.setContent("邮件内容","text/html;charset=utf-8");

    MimeBodyPart part2 = new MimeBodyPart();

    part2.attachFile(new File("FilePath"));//设置附件内容

    part2.setFileName(MimeUtility.encodeText("文件名"));//设置显示的文件名称并处理了中文乱码问题

    list.addBodyPart(part1);//把主体部件添加到集合中

    list.addBodyPart(part2);

    msg.setContent(list);//把多部件内容设置我邮件内容

  //------------------------------------------------------

  Reansport.send(msg);//发送邮件

  }

三.注意事项

  >使用MyEclipse是要选择JAVA EE 6  libraries   用5报错

   >我们用Java发送邮件时相当于自定义客户端根据用户名和密码进行登录,然后使用SMTP服务发送邮件。但新注册的163邮件默认是不开启客户端授权验证的 应手动设置!

关于JavaMail的更多相关文章

  1. javaMail

    JavaMail概述:        JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. javaMai ...

  2. JavaMail发送邮件

    发送邮件包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄 ...

  3. 应用层之E-mail服务及javaMail邮件发送的知识总结

    关于Email服务你需要知道的知识点: 概述: 今天来介绍一下应用层的电子邮件服务,我们每天几乎都在用,电子邮件(email)服务也是一种基于C/S模式的服务,它采用的是一种"存储-转发&q ...

  4. JavaMail发送邮件第一版

    首先,我们先来了解一个基本的知识点,用什么工具来发邮件? 简单的说一下,目前用的比较多的客户端:OutLook,Foxmail等 顺便了解一下POP3.SMTP协议的区别: POP3,全名为" ...

  5. java中使用javamail发送邮件

    1. 电子邮件协议 电子邮件的在网络中传输和网页一样需要遵从特定的协议,常用的电子邮件协议包括 SMTP,POP3,IMAP. 其中邮件的创建和发送只需要用到 SMTP协议,所有本文也只会涉及到SMT ...

  6. Spring JavaMail发送邮件

    JavaMail的介绍 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.   虽然JavaMail是 ...

  7. 使用JavaMail发送邮件

    一.邮件的相关概念 邮件协议.主要包括: SMTP协议:Simple Mail Transfer Protocol,即简单邮件传输协议,用于发送电子邮件 POP3协议:Post Office Prot ...

  8. javamail文件上传

    //创建entity package cn.bdqn.pojo; import java.io.File; public class Mail { private String from; priva ...

  9. JavaMail和James

      JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.我们可以基于JavaMail开发出类似于Micr ...

  10. JavaMail: SSL vs TLS vs STARTTLS

    SSL vs TLS vs STARTTLS There's often quite a bit of confusion around the different terms SSL, TLS an ...

随机推荐

  1. OpenSUSE 13.2安装Texlive2014+Texmaker+Lyx

    (1)首先下载安装Texlive2014 地址:http://mirrors.ustc.edu.cn/CTAN/systems/texlive/Images/ 或直接下载: wget http://m ...

  2. NFTS数据流

    NFTS数据流 NTFS交换数据流(alternate data streams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每一个文件都能够存在多个数据流,就是说除了主文件流之外 ...

  3. VS2013中Python学习环境搭建

    VS2013中Python学习笔记[环境搭建] 前言 Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的设计具有很强的可读性,相比其他语言经常使用英文关键字, ...

  4. SSMS2008插件开发(4)--自定义菜单

    原文:SSMS2008插件开发(4)--自定义菜单 打开上次的项目MySSMSAddin中的Connect类,发现该类继于了两个接口:IDTExtensibility2和IDTCommandTarge ...

  5. 熔断器C#实现

    关键词1:保险丝.电闸跳闸.输入密码错误3次则在指定的时间之内禁止登录 关键词2:保护性架构.防御性代码.软件可靠性 实现:https://github.com/fecktty/Circuit_Bre ...

  6. 我的Android 4 学习系列之开始入手:配置开发环境与理解Hello World!

    目录 如何安装Android SDK.创建开发环境和调试项目 移动设计中一些注意事项 使用Android虚拟设备.模拟器和其他开发工具 如何安装Android SDK.创建开发环境和调试项目 下载和安 ...

  7. Android项目--tabhost

    所有牵扯到自定义布局的layout中尽量用RelativeLayout 在通讯录中如果像小米手机的UI那就是viewpager,在这里,我们做成静态的.通过tabhost来做. 1.布局 a) 直接用 ...

  8. Android中常用的颜色

    代码: <?xml version=”″ ?> <resources> <color name=”white”>#ffffff</color><! ...

  9. Oracle wrap 和 unwrap( 加密与解密) 说明

    一. Wrap 说明 官网的说明如下: A PL/SQL Source Text Wrapping http://download.oracle.com/docs/cd/E11882_01/appde ...

  10. DotNET应用架构设计指南 安全 运行管理和通讯策略

    DotNET应用架构设计指南(第三章:安全 运行管理和通讯策略(13-16)) 安全 运行管理和通讯策略 组织策略定义的规则是支配应用程序如何安全,如何管理,不同的应用程序组件是如何和另一组件及外部服 ...