Java Mail最基本的发送邮件例子

 首先需要导入jar包,mail-1.4.2.jar,然后给出最简单的java mail发送邮件的代码,SimpleSendMailDemo.java

  SimpleSendMailDemo.java


package com.steven.mail;

import java.util.Properties;

import javax.mail.Address;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

/**

* 最基本的邮件发送代码

*

* @author Steven

*

*/

public class SimpleSendMailDemo {

public static void main(String[] args) throws Exception {

// 创建邮件的发送过程中用到的主机和端口号的属性文件

Properties pro = new Properties();

// 设置邮件发送方的主机地址如果是163邮箱,则为smtp.163.com

// 如果是其他的邮箱可以参照http://wenku.baidu.com/link?url=Cf-1ggeW3e7Rm9KWfz47UL7vvkRpPxAKBlYoTSGpnK4hxpJDiQ0A4lRoPDncMlcMIvUpEn6PD0aObgm5zJaM7AOGkRdccSx6HDH2fSWkxIq这个文档

pro.put("mail.smtp.host", "smtp.qq.com");

// 设置发送邮件端口号

pro.put("mail.smtp.port", "25");

// 设置邮件发送需要认证

pro.put("mail.smtp.auth", "true");

// 创建邮件验证信息,即发送邮件的用户名和密码

Authenticator authenticator = new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

// 重写验证方法,填写用户名,密码

return new PasswordAuthentication("songdeitao@qq.com", "123");

}

};

// 根据邮件会话 构建一个邮件的session

Session sendMailSession = Session

.getDefaultInstance(pro, authenticator);

// 创建一个邮件消息

Message message = new MimeMessage(sendMailSession);

// 创建邮件发送者地址

Address sourceAddress = new InternetAddress("songdeitao@qq.com");

// 将原地址设置到消息的信息中

message.setFrom(sourceAddress);

// 创建邮件的接收者地址

Address destAddress = new InternetAddress("songdeitao@163.com");

// 将接收者的地址设置到消息的信息中

message.setRecipient(Message.RecipientType.TO, destAddress);

// 设置邮件的主题

message.setSubject("Merry Christmas!");

// 设置邮件的发送内容

message.setText("你好,圣诞节快乐!");

// 可以设置邮件的发送时间(就是对方看邮件发送的时间)

// String sendDate = "2013-12-23 17:55:00";

// Date date = new

// SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(sendDate);

// message.setSentDate(date);

// 发送邮件

Transport.send(message);

}

}

这个例子是完全没有封装后的源代码,如果进行封装的话,可以考虑将发送的邮箱信息封装成一个邮件信息的类,然后验证可以通过一个类继承Authenticator然后复写方法getPasswordAuthentication(),接着发送的主要业务逻辑可以封装成一个类,这样在使用的时候,就可以通过创建邮件信息,进行验证,通过主要的业务逻辑调用发送邮件。

  然后发送的最终效果如下图1所示:

  

图1

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-12-20 11:40:45

Java Mail最基本的发送邮件例子的相关文章

Android中如何使用Java Mail API发送邮件

最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交.程序的建议.程序使用中的问题,但是这样的服务基本上不是完全开源和免费的,并且我对程序反馈的定位还是用户可以把他的想法通过写文字的方法发送回来就可以(不需要记录崩溃时的系统状况),所以还是决定在完全了解实现机制的基础上来实现反馈功能. 采用发送邮件的方式不需要自己构建服务器,同时也符合我对反馈的管理习

java发送邮件-java mail 发送邮件问题,总是无法连接主机

问题描述 java mail 发送邮件问题,总是无法连接主机 1C 报错信息: Could not connect to SMTP host: smtp.qq.com port: 25 response: -1!! 邮箱的smtp服务也开了,ping得到smtp.qq.com,但始终都是出现这个错误,无语呀,,在服务器上面可以,这是在本地的. 解决方案 Java Mail 发送邮件java mail发送邮件java mail 发送邮件 解决方案二: 如果你同样的代码在另一台机器上跑通了的话换了一

Java Mail与Apache Mail发送邮件示例_java

一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例如xxx@xx.com 2.收件人姓名:大部分的邮件显示时都会显示,例如loadfate 779554589@qq.com 3.发件人:发件人的邮箱地址 4.发件人姓名: 5.主题:邮件的标题 6.内容及附件:邮件的主要内容 二.使用Java发邮件的通用步骤 一般的项目中没有单独的邮件服务器,一般情况下都是使用别人的服务器. 1.设置smtp服务器:不同的邮件服务器有不同的地址,

使用java mail 包收发中文邮件的编码,解码问题以及解决方法

编码|解决|问题|中文 编码 邮件头(参见RFC822,RFC2047)只能包含US-ASCII字符.邮件头中任何包含非US-ASCII字符的部分必须进行编码,使其只包含US-ASCII字符.所以使用java mail发送中文邮件必须经过编码,否则别人收到你的邮件只能是乱码一堆.不过使用java mail 包的解决方法很简单,用它自带的MimeUtility工具中encode开头的方法(如encodeText)对中文信息进行编码就可以了. 例子: MimeMessage mimeMsg = ne

使用Spring的JAVA Mail支持简化邮件发送(转)

闲来无事,翻看<Spring in Action>,发现Spring集成了对JAVA Mail的支持,有点小激动的看了一遍,嗯,话说真的简单了很多. Spring的邮件发送的核心是MailSender接口,在Spring3.0中提供了一个实现类JavaMailSenderImpl,这个类是发送邮件的核心类.可以通过在配置文件中配置使用,当然也可以自己硬编码到代码中(方便起见,下面的演示代码都是硬编码到代码中,省得配置麻烦). Spring提供的邮件发送不仅支持简单邮件的发送.添加附件,而且还可

关于java mail 发邮件的问题总结(转)

今天项目中有需要用到java mail发送邮件的功能,在网上找到相关代码,代码如下: import java.io.IOException; import java.util.Properties; import javax.mail.Message; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.interne

Java发邮件:Java Mail与Apache Mail

一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例如xxx@xx.com 2.收件人姓名:大部分的邮件显示时都会显示,例如loadfate 779554589@qq.com 3.发件人:发件人的邮箱地址 4.发件人姓名: 5.主题:邮件的标题 6.内容及附件:邮件的主要内容 二.使用Java发邮件的通用步骤 一般的项目中没有单独的邮件服务器,一般情况下都是使用别人的服务器. 1.设置smtp服务器:不同的邮件服务器有不同的地址,

浅析Java Mail无法解析带分号的收件人列表的问题_java

今天同事碰到一个问题,使用JAVA MAIL收取邮件时,如果收件人是个列表,且收件人列表是以分号进行分割的,则JAVA MAIL就会出现异常,不能正常解析,抽空看了一眼,自己写了个简单demo,很简单,例如: 复制代码 代码如下:         @Test        public void testReceiveMail() {                 try {                        String host = "pop3.163.com";  

用Java Mail发送带有图片附件的html格式邮件

用Java Mail发送带有图片的html格式的邮件,针对于显示图片,一般有两种方法. 1. 图片存在于服务器上,我们只需要把图片在服务器的的链接放进去即可. 这种发式比较简单,但是这种方法有些缺陷: 图片不支持离线浏览: 每次浏览邮件需要访问web服务,增加服务器负担: 若图片以二进制的方式存在于数据库或是动态生成的,则无法有效的解决. 2. 把图片以附件的方式发送出去,这种方式非常适用于图片存在于数据库中的情况. 本文也主要讨论这种情况. 对于Java Mail的基础知识,请看http://