java实现基于SMTP发送邮件的方法
作者:答复哈 发布时间:2023-04-06 12:22:07
标签:java,SMTP,邮件
本文实例讲述了java实现基于SMTP发送邮件的方法。分享给大家供大家参考。具体实现方法如下:
import java.util.Date;
import java.util.Properties;
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;
import org.apache.log4j.Logger;
public class MailUtil {
private static Logger logger = Logger.getLogger(MailUtil.class);
/**
* 发送邮件
*
* @param smtp
* SMTP服务器
* @param user
* 用户名
* @param password
* 密码
* @param subject
* 标题
* @param content
* 邮件内容
* @param from
* 发件人邮箱
* @param to
* 收件人邮箱
*/
public static void send(String smtp, final String user,
final String password, String subject, String content, String from,
String to) {
try {
Properties props = new Properties();
props.put("mail.smtp.host", smtp);
props.put("mail.smtp.auth", "true");
Session ssn = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});
MimeMessage message = new MimeMessage(ssn);
//由邮件会话新建一个消息对象
InternetAddress fromAddress = new InternetAddress(from);
//发件人的邮件地址
message.setFrom(fromAddress);
//设置发件人
InternetAddress toAddress = new InternetAddress(to);
//收件人的邮件地址
message.addRecipient(Message.RecipientType.TO, toAddress);
//设置收件人
message.setSubject(subject);
//设置标题
message.setText(content);
//设置内容
message.setSentDate(new Date());
//设置发信时间
Transport transport = ssn.getTransport("smtp");
transport.connect(smtp, user, password);
transport.sendMessage(message, message
.getRecipients(Message.RecipientType.TO));
// transport.send(message);
transport.close();
logger.info("邮件发送成功");
} catch (Exception e) {
logger.warn("邮件发送失败", e);
}
}
}
希望本文所述对大家的java程序设计有所帮助。


猜你喜欢
- Android的文件存储,有I/O流的方式存储,与java一样,还有一种Android自己的SharePreferences存储方法。下面看
- MyBatis根据条件批量修改字段背景:给学生改作业,只要是对的都批量进行数据库的修改代码以及注释conttoller@RestContro
- 单链表:每个数据是以节点的形式存在的每个节点分为数据域和指针域数据域中保存该节点的数据指针域中保存指向下一个节点的指针实现思路:节点类Sin
- 想必大家都知道,国内的Android应用基本都是免费的,那么开发者如何获得收入呢?应用中插入广告是一个比较常用的盈
- 去除XSS字符串需要借助工具类 jsoup ,这里jsoup有一点需要注意的是,jsoup的功能可能有点太强大了,能把xss攻击的内容直接过
- 1. Java对象结构Java对象结构包括三部分:对象头、对象体和填充字节,如图所示:对象头又包括三个字段:第一个字段叫作Mark Word
- 本文研究的主要是Java中后台线程的相关问题,具体介绍如下。以前从来没有听说过,java中有后台线程这种东西。一般来说,JVM(JAVA虚拟
- SpringMVC服务器验证一种是有两种方式,一种是基于Validator接口,一种是使用Annotaion JSR-303标准的验证,下面
- spring boot executable jar/warspring boot里其实不仅可以直接以 java -jar demo.jar
- 1. 布局: GridBagLayout官方JavaDocsApi: java.awt.GridBagLayoutGridBagLayout
- 本文实例讲述了C#字符串加密解密方法。分享给大家供大家参考。具体如下:#region 加密解密static string encryptKe
- 目录依赖引入PowerMockito的使用使用mockito来mock实例mock对Redis的静态调用mock单例类mock私有方法Pow
- 本文实例讲述了Android编程动态按钮实现方法。分享给大家供大家参考,具体如下:第一种: 该方法通过onTouch来实现,btn3 = (
- 目录1.使用双重for循环打印九九乘法表2.使用双重for循环打印九九乘法表,跳过第五行3.使用do{}while()实现打印九九乘法表1.
- 实现效果为一个小球接触左右侧时,会反向的运动。import javafx.application.Application;import ja
- 目录前言闲扯使用技术所需知识储备实现步骤总结前言现代互联网项目中,很多场景下都需要使用一种叫做验证码的技术,常用的有图片验证码,滑块验证码,
- 容器类、正则表达式在几乎所有编程语言都存在的东西。很常用也很使用。下面用如下的一个控制台小程序说明C#的正则表达式与容器类的应用。开始直接输
- 本文实例讲述了Java二维数组简单定义与使用方法。分享给大家供大家参考,具体如下:Java的二维数组是先创建一个一维数组,然后该数组的元素再
- 本文实例为大家分享了C++实现连连看游戏的具体代码,供大家参考,具体内容如下这个项目还是挺不错的,运行后也比较有意思,可以看看。#inclu
- 目录一、设置通知内容二、创建渠道三、设置通知栏的点击操作四、显示通知一、设置通知内容//CHANNEL_ID,渠道ID,Android 8.