网站首页 > java教程 正文
该系列为java工具类系列,主要展示100个常用的java工具类。
本系列工具类的核心目的主要有三点:
1,以便他用:提供可用的Java工具类,方便大家使用,避免重复造轮子
2,个人记录:作为个人记录,同时督促自己学习总结
3,为初学者提供思路,相互交流,共同进步
当然,很多细节部分经不起推敲,如存在部分代码不规范、注释不详细、格式不统一等问题,还望阅读者多多包涵,多提意见。
本文主要讲述:如何使用java免费发送邮件
一、发送邮件
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
//smtp.qq.com smtp.163.com smtp.aliyun.com
private static final String EMAIL_OWNER_ADDR_HOST = "smtp.qq.com";
//发送人邮箱
private static final String EMAIL_OWNER_ADDR = "123@qq.com";
//发送人邮箱授权码 QQ邮箱-设置-设置生成16位授权码
private static final String EMAIL_OWNER_ADDR_PASS = "lvbaqegmtijchwad";
public static void sendMail(String title, String email, String content) throws Exception {
Properties prop = new Properties();
prop.put("mail.host", EMAIL_OWNER_ADDR_HOST);
prop.put("mail.transport.protocol", "smtp");
prop.put("mail.smtp.auth", "true");
prop.setProperty("mail.smtp.ssl.enable", "true");
//发送邮件五步走
//1.创建sesssion
Session session = Session.getInstance(prop);
//2.通过session获取Transport对象(发送邮件的核心API)
//开启session的调试模式,可以查看当前邮件发送状态 session.setDebug(true);
Transport ts = session.getTransport();
//3.发送人邮件用户名和授权码
ts.connect(EMAIL_OWNER_ADDR, EMAIL_OWNER_ADDR_PASS);
//4.创建邮件
MimeMessage mm = new MimeMessage(session);
//设置发件人
mm.setFrom(new InternetAddress(EMAIL_OWNER_ADDR));
//设置收件人
mm.setRecipient(Message.RecipientType.TO, new InternetAddress(email));
//设置抄送人 mm.setRecipient(Message.RecipientType.CC, new InternetAddress("@qq.com"));
//设置标题
mm.setSubject(title);
//mm.setContent("您的注册验证码为:<b style=\"color:blue;\">123456</b>", "text/html;charset=utf-8");
mm.setContent(content, "text/html;charset=utf-8");
//5.发送电子邮件
ts.sendMessage(mm, mm.getAllRecipients());
}
public static void main(String[] args) throws Exception {
//sendMail("恭喜您中了1000万", "123@qq.com", "您的注册验证码为:<b style=\"color:blue;\">123456</b>");
sendMail("恭喜您中了1000万", "123@qq.com", "恭喜您中了1000万!!!!!!!");
}
以上便是使用java发送邮件的全部代码,本人亲测可用
需要注意的是:发送邮箱需要开启smtp服务,QQ邮箱登录邮箱在设置里手动设置
其他邮箱可以自行百度设置,方法非常简单。
感谢您的阅读!
猜你喜欢
- 2024-10-08 避免重复造轮子,Java 程序员必备
- 2024-10-08 Java二十周年特别策划--谈谈我与Java的那些年、这些事
- 2024-10-08 Prometheus+Grafana+钉钉部署一个单机的MySQL监控告警系统
- 2024-10-08 Java程序员必须了解的20个lib库(郑州java程序员工资一般多少)
- 2024-10-08 使用java写爬虫时可能会用到.httpclient中Headers及Cookies
- 2024-10-08 Java二十周年特别策划——谈谈我与Java的那些年、这些事
- 2024-10-08 白当了这么多年程序员,今天才发现伪造邮件的小秘密
- 2024-10-08 SpringBoot+RabbitMQ ,保证消息100%投递成功并被消费(附源码)
- 2024-10-08 如何将自己的jar包发布到maven中央仓库,让别人也能使用?
- 2024-10-08 郑州Java学习进阶课程之消息队列(java中消息队列什么意思)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)