java发送简单邮件_Java程序实现发送简单文本邮件

news/2025/3/15 23:17:20/

/**

* Java程序实现发送简单文本邮件

*

* @author Administrator

*

*/

public class SendTextMail {

// 定义发件人地址

public static String sendAddress = "xxxx@163.com";

// 定义收件人地址

public static String receiveAddress = "xxx@163.com";

// 定义发件人账户名

public static String sendAccount = "xxx@163.com";

// 定义发件人密码

public static String senderPassword = "xxxxx";

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

// 1.链接邮件服务器的参数配置

Properties props = new Properties();

// 2.设置用户的认证方式

props.setProperty("mail.smtp.auth", "true");

// 3.设置传输协议

props.setProperty("mail.transport.protocol", "smtp");

// 4.设置发件人的SMTP服务器地址

props.setProperty("mail.smtp.host", "smtp.163.com");

// 1、创建定义整个应用程序所需的环境信息的 Session 对象

Session session = Session.getInstance(props);

// 2.设置调试信息在控制台打印出来

//session.setDebug(true);

// 3.创建邮件的实例对象

Message msg = getMimeMessage(session);

// 4.根据session对象获取邮件传输对象Transport

Transport transport = session.getTransport();

// 设置发件人的账户名和密码

transport.connect(sendAccount, senderPassword);

// 发送邮件,并发送到所有收件人地址,message.getAllRecipients()

//获取到的是在创建邮件对象时添加的所有收件人,

// 抄送人, 密送人

transport.sendMessage(msg, msg.getAllRecipients());

// 如果只想发送给指定的人,可以直接写

// transport.sendMessage(msg, new Address[]{new

// InternetAddress("xxx@qq.com")});

// 关闭邮件连接

transport.close();

}

/**

* 获得创建一封邮件的实例对象

*

* @param session

* @return

* @throws MessagingException

* @throws AddressException

*/

public static MimeMessage getMimeMessage(Session session) throws Exception {

// 创建一封邮件的实例对象

MimeMessage msg = new MimeMessage(session);

// 设置MimeMessage对象的发件人地址

msg.setFrom(new InternetAddress(sendAddress));

/**

* 设置收件人地址(可以增加多个收件人、抄送、密送),

* 即下面这一行代码书写多行 MimeMessage.RecipientType.TO:发送

* MimeMessage.RecipientType.CC:抄送

* MimeMessage.RecipientType.BCC:密送

*/

//设置MimeMessage对象的接收人以及接收方式

msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(

receiveAddress));

// 设置邮件主题

msg.setSubject("测试邮件", "UTF-8");

// 设置邮件正文

msg.setContent("这是测试邮件的内容", "text/html;charset=UTF-8");

// 设置邮件的发送时间,默认立即发送

msg.setSentDate(new Date());

return msg;

}


http://www.ppmy.cn/news/602906.html

相关文章

java 捕获异常并存入数据库_java异常处理,报异常的话怎么处理对象值,并持久化到数据库中...

展开全部//没看到有人回e68a843231313335323631343130323136353331333365646233答你,我还没学到框架,不知道那个是不是可以很便捷操作你说的这样过程//我写个基础点的,就是一个序列化与反序列化的过程,你这个是要侦测到参数异常的时候//才开始进行序列化操作的,其实我觉得原理应…

金属元素螯合剂:(S)-DOTAGA-(COOt-Bu)4,1023889-20-4,可应用于制备纳米材料

文章关键词:金属元素螯合剂,大环配体,DOTA标记(COOt-Bu)4 ●中文名:(S)-DOTAGA-四叔丁酯 ●英文名:(S)-DOTAGA-(COOt-Bu)4 ●外观以及性质: 西安凯新生物科技有限公司供应的​(S)-DOTAGA-(COOt-Bu)4中DOT…

java 手编线程池_死磕 java线程系列之自己动手写一个线程池

欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。(手机横屏看源码更方便)问题(1)自己动手写一个线程池需要考虑哪些因素?(2)自己动手写的线程池如何测试?简介线程池是Java并发编程中经常使用到的技术&…

java带参数的方法笔记_具有Java参数的方法的类声明

类声明可以包含在Java中具有参数的方法。演示此过程的程序如下:示例class Message {public void messagePrint(String msg) {System.out.println("The message is: " msg);}}public class Demo {public static void main(String args[]) {Message m new…

java 0-100整数多少个是7的倍数_输出1-100之间7的倍数的个数。

java小白,在学习java基础视频,看到毕老师给的一个练习。便自己编写了一下。在编写的过程中。输出个数是没有问题的。代码如下://目的:计算1-100之间7的倍数的个数。/**要求:1,先求出1-100之间7的倍数。2&am…

java 原子量_Java原子量 - Rickxue的个人空间 - OSCHINA - 中文开源技术交流社区

所谓的原子量即操作变量的操作是“原子的”,该操作不可再分,因此是线程安全的。为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题。在Java5之前,可以通过volatile、synchronized关键字来解决并发访问的安全问题…

java 数据结构 无向图_数据结构-无向图

1.图的定义图(Graph)是由顶点(vertex)的有穷非空集合和顶点之间边(edge)的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合 a.若顶点之间 Vi 和 Vj 之间没有方向,则为无…

java命令行读入密码_java-在命令行上隐藏输入

是的,可以做。 这称为命令行输入屏蔽。 您可以轻松实现此目的。您可以使用单独的线程擦除输入的回显字符,并用星号替换。 使用下面显示的EraserThread类完成此操作import java.io.*;class EraserThread implements Runnable {private boolean stop;/***p…