java实现基于SMTP发送邮件的方法
作者:答复哈 时间:2023-04-06 12:22:07
本文实例讲述了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程序设计有所帮助。
标签:java,SMTP,邮件
0
投稿
猜你喜欢
Java设计模式之建造者模式的示例详解
2022-02-13 18:47:34
java虚拟机内存溢出及泄漏实例
2023-11-27 15:22:06
Android开发中应用程序分享功能实例
2021-05-27 20:38:46
分布式系统下调用链追踪技术面试题
2023-11-25 05:55:00
C#实现图片切割、切图、裁剪
2022-10-24 15:12:19
辨析Java中的String与StringBuffer及StringBuilder字符串类
2023-08-21 19:59:50
C#使用NPOI上传excel
2022-05-20 14:46:22
学习Java之如何正确地向上转型与向下转型
2022-10-12 09:58:10
高斯混合模型与EM算法图文详解
2022-10-02 12:05:02
Java 批量删除Word中的空白段落示例代码
2023-09-17 16:36:53
Android View事件机制 21问21答
2022-10-14 04:27:10
java 工厂模式的讲解及优缺点的介绍
2022-02-05 10:57:09
Java 数据结构之删除链表中重复的结点
2023-11-28 15:36:22
springboot整合@Retryable实现重试功能的示例代码
2023-11-27 11:08:20
Aspectj框架实战案例详解
2022-12-30 02:28:24
使用idea创建web框架和配置struts的方法详解
2022-11-14 14:21:52
C# 输出字符串到文本文件中的实现代码
2022-08-25 11:18:13
Hibernate用ThreadLocal模式(线程局部变量模式)管理Session
2021-10-01 18:50:10
springboot schedule 解决定时任务不执行的问题
2021-05-30 05:00:38
Spring创建Bean的6种方式详解
2022-07-18 19:10:13