使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) 。

您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。

您可以从 Java 网站下载最新版本的 JAF(版本 1.1.1)。

你也可以使用本站提供的下载链接:

JavaMail mail.jar 1.4.5

JAF(版本 1.1.1) activation.jar

下载并解压缩这些文件,在新创建的顶层目录中,您会发现这两个应用程序的一些 jar 文件。您需要把 mail.jar 和 activation.jar 文件添加到您的 CLASSPATH 中。

如果你使用第三方邮件服务器如QQ的SMTP服务器,可查看文章底部用户认证完整的实例。

发送一封简单的 E-mail

下面是一个发送简单E-mail的例子。假设你的本地主机已经连接到网络。

SendEmail.java 文件代码:

// 文件名 SendEmail.java

import java.util.*;

import javax.mail.*;

import javax.mail.internet.*;

import javax.activation.*;

public class SendEmail

{

public static void main(String [] args)

{

// 收件人电子邮箱

String to = "abcd@gmail.com";

// 发件人电子邮箱

String from = "web@gmail.com";

// 指定发送邮件的主机为 localhost

String host = "localhost";

// 获取系统属性

Properties properties = System.getProperties();

// 设置邮件服务器

properties.setProperty("mail.smtp.host", host);

// 获取默认session对象

Session session = Session.getDefaultInstance(properties);

try{

// 创建默认的 MimeMessage 对象

MimeMessage message = new MimeMessage(session);

// Set From: 头部头字段

message.setFrom(new InternetAddress(from));

// Set To: 头部头字段

message.addRecipient(Message.RecipientType.TO,

new InternetAddress(to));

// Set Subject: 头部头字段

message.setSubject("This is the Subject Line!");

// 设置消息体

message.setText("This is actual message");

// 发送消息

Transport.send(message);

System.out.println("Sent message successfully....");

}catch (MessagingException mex) {

mex.printStackTrace();

}

}

}

编译并运行这个程序来发送一封简单的E-mail:

$ java SendEmail

Sent message successfully....

如果你想发送一封e-mail给多个收件人,那么使用下面的方法来指定多个收件人ID:

void addRecipients(Message.RecipientType type,

Address[] addresses)

throws MessagingException

下面是对于参数的描述:

type:要被设置为 TO, CC 或者 BCC,这里 CC 代表抄送、BCC 代表秘密抄送。举例:Message.RecipientType.TO

addresses: 这是 email ID 的数组。在指定电子邮件 ID 时,你将需要使用 InternetAddress() 方法。

Java 发送邮件的学习笔记相关推荐

  1. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

  2. java.util.List学习笔记

    概述 在Java中,List是一种特殊的集合结构,即:List是一种有序的集合.在List接口的实现中,需要提供根据列表下表对元素进行操作的方法,包括:插入,删除,查询和修改等: List一般允许重复 ...

  3. Java快速入门学习笔记9 | Java语言中的方法

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  4. Java快速入门学习笔记8 | Java语言中的数组

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  5. Java快速入门学习笔记7 | Java语言中的类与对象

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  6. Java快速入门学习笔记6 | Java语言中的for循环语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  7. Java快速入门学习笔记5 | Java语言中的while循环语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  8. Java快速入门学习笔记4 | Java语言中的if条件语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  9. Java快速入门学习笔记3 | Java语言中的表达式与操作符

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

最新文章

  1. Visual C++下对匿名管道的编程实现
  2. 自然语言处理顶会 ACL 2018 参会见闻
  3. 机器学习入门-文本数据-使用聚类增加文本的标签属性
  4. 文献学习(part32)--Density Peak Clustering Based on Relative Density Optimization
  5. c++11新特性(4) lambda捕捉块
  6. ORC 在 Hive 中的应用
  7. 5、URLConnection(2)
  8. php上传图片大小判断,jQuery实现判断上传图片类型和大小的方法示例
  9. mysql查询优化not in,mysql not in如何优化
  10. activemq概念介绍
  11. PHP 图片处理类 错误处理方法:
  12. 关于集合和字符串的互转
  13. 老猿学5G随笔:5G核心网中与用户数据相关的NF功能体UDM、AUSF、PCF、UDR
  14. 批量转换文件编码(By notepad++)
  15. word计算机桌面加密,word文档加密,怎么让word自动加密 -电脑资料
  16. 哥德巴赫猜想程序(C语言)
  17. 日本“经营之神”稻盛和夫去世,终年90岁,人生信条:“每天都必须特别认真地生活。”...
  18. stm32cubeMX学习六、Freertos配置综合实践(移植大彩串口屏程序框架)
  19. 卸载PCTools防火墙Group Policy被劫持
  20. RocketMQ高可用机制----同步刷盘、异步刷盘和同步复制、异步复制

热门文章

  1. RegexBuddy布局异常修复方法
  2. GitHub上的7个超棒Vue管理后台框架
  3. Adam:一种随机优化方法
  4. 品牌对比 | 罗曼 VS 欧乐B
  5. 浅谈客户端与服务端的加密通讯(HTTPS/AES/RSA/RequestBodyAdviceAdapter/ResponseBodyAdvice)
  6. 二世古新世界·羽·度假村将于2023年盛大揭幕
  7. linux下 单调时间(另附墙上时间、CPU时间)
  8. linux定时任务每小时_linux 后台运行,linux定时脚本任务,定时(每分钟),每小时...
  9. 【并发编程】线程池及Executor框架
  10. MySQL函数、视图、存储过程及触发器