Java-JavaMail邮件开发(1)Java Mail
1、仅使用Java Mail
使用163邮箱作为代理服务器:
引入依赖:
<dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version> </dependency>
config.properties
host=smtp.163.com from=xxxxxxxxxx@163.com to=xxxxxxxxxxx@qq.com affix=src/main/java/a.png affixName=a.png user=xxxxxxxxxx pwd=xxxxxxxxxxx #授权码 subject=\u6D4B\u8BD5\u53D1\u9001\u90AE\u4EF6
SendMailUtil.java
package com.lfy.cn.JExcelApiTest;import java.io.IOException; import java.util.Properties;import javax.mail.*; import javax.mail.internet.*; import javax.activation.*;public class SendMailUtil {static String HOST = ""; // smtp服务器static String FROM = ""; // 发件人地址static String TO = ""; // 收件人地址static String AFFIX = ""; // 附件地址static String AFFIXNAME = ""; // 附件名称static String USER = ""; // 用户名static String PWD = ""; // 163的授权码static String SUBJECT = ""; // 邮件标题static String[] TOS = null;static {try {Properties props = new Properties(); props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties"));//从自定义配置文件获取相关参数HOST=props.getProperty("host");FROM=props.getProperty("from");TO=props.getProperty("to");TOS=TO.split(",");AFFIX=props.getProperty("affix");AFFIXNAME=props.getProperty("affixName");USER=props.getProperty("user");PWD=props.getProperty("pwd");SUBJECT=props.getProperty("subject");} catch (IOException e) {e.printStackTrace();}}/*** 发送邮件* @param host* @param user* @param pwd*/public static void send(String context) {Properties props = new Properties();props.put("mail.smtp.host", HOST);//设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)props.put("mail.smtp.auth", "true"); //需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)Session session = Session.getDefaultInstance(props);//用props对象构建一个sessionsession.setDebug(true);MimeMessage message = new MimeMessage(session);//用session为参数定义消息对象try {message.setFrom(new InternetAddress(FROM));// 加载发件人地址InternetAddress[] sendTo = new InternetAddress[TOS.length]; // 加载收件人地址for (int i = 0; i < TOS.length; i++) { sendTo[i] = new InternetAddress(TOS[i]); }message.addRecipients(Message.RecipientType.TO,sendTo);message.addRecipients(MimeMessage.RecipientType.CC, InternetAddress.parse(FROM));//设置在发送给收信人之前给自己(发送方)抄送一份,不然会被当成垃圾邮件,报554错message.setSubject(SUBJECT);//加载标题Multipart multipart = new MimeMultipart();//向multipart对象中添加邮件的各个部分内容,包括文本内容和附件BodyPart contentPart = new MimeBodyPart();//设置邮件的文本内容 contentPart.setText(context);multipart.addBodyPart(contentPart);if(!AFFIX.isEmpty()){//添加附件BodyPart messageBodyPart = new MimeBodyPart();DataSource source = new FileDataSource(AFFIX);messageBodyPart.setDataHandler(new DataHandler(source));//添加附件的内容sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();//添加附件的标题messageBodyPart.setFileName("=?GBK?B?"+ enc.encode(AFFIXNAME.getBytes()) + "?=");multipart.addBodyPart(messageBodyPart);}message.setContent(multipart);//将multipart对象放到message中message.saveChanges(); //保存邮件Transport transport = session.getTransport("smtp");//发送邮件transport.connect(HOST, USER, PWD);//连接服务器的邮箱transport.sendMessage(message, message.getAllRecipients());//把邮件发送出去transport.close();//关闭连接} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {send("内容");} }
运行效果:
2、总结
邮件发送分为四步:创建邮件发送器、编写邮件内容、书写邮件往来地址、发送邮件。
spring提供了JavaMailSenderImpl对Java Mail的支持,JavaMailSenderImpl继承自javaMailSender。
JavaMailSenderImpl支持MimeMessages和SimpleMailMessages:
MimeMessages为复杂邮件模板,支持文本、附件、html、图片等。
SimpleMailMessages实现了MimeMessageHelper,为普通邮件模板,支持文本。
转载于:https://www.cnblogs.com/ZeroMZ/p/11408589.html
Java-JavaMail邮件开发(1)Java Mail相关推荐
- java上位机开发(java基础)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] java基础就是把java环境安装好,把基础程序构建起来.至少说让开发的同学来说有一点信心.从这 ...
- php java优劣_PHP开发和JAVA开发网站的优劣对比
PHP开发和JAVA开发网站的优劣对比有哪些?该篇文章由川软教育君整理并编辑: 1.开发网站最好选用一个比较成熟.资料比较多的CMS,因为自己开发后台工作量也不小,JAVA的CMS比PHP要少很多,所 ...
- java无框架开发,DON: java 小型web项目快速开发框架,实现无配置,直接关注业务开发.主要解决请求分发解析...
#DON框架介绍 ##目标 启动零配置快速进入开发 开发时,请求controller路由零配置 配合windfly.jar工具包快速开发 最终实现加入jar包即可快速开发 ##主要特点 无需配置请求u ...
- JAVA架构与开发(JAVA架构是需要考虑的几个问题)
在企业中JAVA架构师主要负责企业项目技术架构,企业技术战略制定,技术框架搭建,技术培训和技术攻坚的工作. 在JAVA领域,比较多的都是web项目.用于解决企业的数字化转型.对于JAVA架构师而言,平 ...
- java大数据开发训练营--Java Web 后端技术基础(上)
题记: 文章内容输出来源:拉勾教育大数据开发高薪训练营 本篇文章是java学习课程中的一部分笔记. 本博文主要是记录一些基础的知识点,通过实操更容易理解 这章主要讲的是JAVA Web后端基础 一 W ...
- Java微服务开发指南-Java环境下的微服务
本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布式系统问题.但是我们通过 ...
- Java微服务开发指南 -- Java环境下的微服务
Java环境下的微服务 本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布 ...
- java adt简单开发,android java开发 第一天 之熟悉eclipse adt-Go语言中文社区
1.下载并安装好android-sdk后(android-sdk里包含了android 1.6 ~ android4.0的所有api,支持各种版本的android) 2.下载adt(android d ...
- java实现邮件代理发送
java实现邮件代理发送 java发送邮件功能支持代理,但是不支持http代理,支持sock代理(支持SOCKS V4或V5协议) 实现效果 使用自己的邮箱进行账密认证 以群组邮箱地址作为发件人进行发 ...
- Java新浪微博客户端开发第四步
这一步是对之前进行较大的改动.增加的类也比较多.包结构如下: 0.Main:主函数入口 1.MainDialog:主界面 2.WeiboPanel:StatusPanel及CommentPanel的父 ...
最新文章
- 第二家公司Get技能总结
- linux 加密库 libsodium 安装
- SOA 案例研究:SOA 设计
- Spring4.X系列之Spring JDBC
- ajax 泛微oa表单js_OA项目总结
- Apache中的Order Allow,Deny用法详解
- SQL Server索引进阶第十篇:索引的内部结构
- 删除文件夹下所有的文件_VB删除文件和文件夹的方法
- mysql 几级缓存_Mysql中一级缓存二级缓存区别
- 实现输入提示 layui_ASP.NET Core SignalR :学习消息通讯,实现一个消息通知
- 中day参数介绍_浅谈生物制药中的 CHO 细胞培养工艺开发
- Unity根据电脑高中低配置加载不同模型
- 编程错题本——解析OpenWnn(1)命名问题
- JavaScript逻辑运算与或非
- Docker部署各种服务
- html2pdf无法导出图片解决方案(2020版)
- 6C.项链(C++)
- 业余羽毛球爱好者提高球艺16条法则
- c语言 中文转拼音,汉字转换拼音解决思路
- 1、高等数学 —求和运算法则