码迷,mamicode.com
首页 > 编程语言 > 详细

Java 发送邮件

时间:2016-07-02 23:07:29      阅读:561      评论:0      收藏:0      [点我收藏+]

标签:java   发送邮件   apache email   

一 邮件的发送过程

技术分享

    ① 发件人编辑邮件

        ② 邮件发送至发送账号所有的SMTP服务器

        ③ 如果发送账号和接收账号不在同SMTP服务器,发送账号所属的服务器负责将邮件发至收件人所属SMTP服务器

        ④ 收件人查看邮件时,收件人所属服务器把邮件传给收件人的客户端


        从而使用Java开发程序所需做的事情:创建和编辑邮件,发送邮件至发件人所属服务器


二 邮件的基本组成内容

       

         技术分享

        

         如上图所示,邮件的主要组成部分有

                发件人,收件人,抄送,密送,主题,附件,正文

                正文是用富文本编辑器编辑,即可以是无格式文本,也可以是html格式(含内联图片)


三 基于Apache Commons Email 发送邮件

        1 开发包的引入

            Apache Commons Email 是对JavaMail的包装,所以需要引入JavaMail所需的jar包,同时引入自身的jar包。

            activation.jar包下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html

        jdk6及以上版本已包含该jar无需引入

      mail.jar包下载地址:https://java.net/projects/javamail/downloads

        JavaEE包含该jar包无需引入

      apache commons email 下载地址:http://commons.apache.org/proper/commons-email/download_email.cgi

    2 常用API简介

        技术分享


            上述类是对邮件对于正文和附件不同表现形式的实现,特定的类增加特定的功能。

            Email类是对除了正文和附件的其他内容的实现,

            SimpleEmail类添加无格式文本,

            MultipartEmail添加附件,EmailAttachment是对附件的封装,

            HtmlEmail添加显示html格式功能

            ImageHtmlEmail实现内联图片,HtmlEmail也可以实现内联图片显示,但是需要cid,而ImageHtmlEmail无需cid


    三 示例代码

            下面提供一个开发常用的示例代码

            

public void sendEmail() throws EmailException{
    //创建正文内容以html格式显示的邮件
    HtmlEmail email = new HtmlEmail();
		
    //设置环境参数
    email.setHostName("smtp.sina.com");
    email.setCharset("UTF-8");
		
    //设置连接服务器的用户名密码
    email.setAuthentication("account", "password");
		
    //设置邮件的发件人和收件人
    email.setFrom("email account");	
    //也可以调用email.setTo(aCollection)设置多个接收人,
    //或者多次调用email.addTo
    email.addTo("recepient");	
		
    //设置主题
    email.setSubject("Apache Email发送邮件");
		
    //添加附件
    email.attach(new File("G:\\workspace\\javamail\\bin\\mail.properties"));
    email.attach(new File("G:\\workspace\\javamail\\bin\\NOTICE.txt"));
		
    //添加html
    String cid = email.embed(new File("C:\\Documents and Settings\\Administrator\\桌面\\ApacheEmail类关系图.png"));
    String aHtml = 
		"<html>"
		+ "<span style=‘color:red;‘>这是一封使用Apache Email实现的使用程序发送Email</span>"
		+ "<br>"
		+ "<img src=‘cid:"+cid+"‘ alt=‘找不到图片‘>"
		+ "</html>";
    email.setHtmlMsg(aHtml);
	
    //设置文本信息,当邮箱客户端不支持html格式信息时显示
    email.setTextMsg("对不起,您的邮箱客户端不支持显示html格式内容");
		
    //发送邮件
    email.send();
}

        效果图:

        技术分享

四 常用邮箱发送邮件说明

后期继续说明

本文出自 “philipzone” 博客,请务必保留此出处http://philipzone.blog.51cto.com/8856558/1795142

Java 发送邮件

标签:java   发送邮件   apache email   

原文地址:http://philipzone.blog.51cto.com/8856558/1795142

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!