java实现邮件的发送包括网页文件的发送

javaMail实现文件接收与发送 此文档中的代码可立即进入测试,便于各位有需要使用邮件收发的传阅,共同学习 立即下载
本文出自 “java开发笔记” 博客 出处http://gaoqifang.blog.51cto.com/2270113/758306说明:1、本程序可实现网页文件、普通文件的发送。2、实现邮件发送需要三个jar包的支持:commons-codec-1.3.jar、commons-httpclient-3.0.jar(这两个jar包实现抓取互联网网页内容)以及mail.jar具体实现:一、首先建立MailAuthenticator类,继承自javax.mail.Authenticator类。此类实现发件箱的登陆验证。package com.company.simplemail; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; /** * 服务器邮箱登录验证 */ public class MailAuthenticatorextends Authenticator {// 用户名(登录邮箱) private String username; // 密码 private String password; /** * 初始化邮箱和密码 * @param username 邮箱 * @param password 密码 */ public MailAuthenticator(String username, String password){this.username = username; this.password = password; } String getPassword() { return password; } @Override protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(username, password);} String getUsername() { return username; } public void setPassword(String password) {this.password = password; } public void setUsername(String username) {this.username = username; } }二、建立SimpleMailSender类,此类实现邮件的单发、群发等等,是邮件发送的核心类。package com.company.simplemail; import java.util.List; import java.util.Properties; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage.RecipientType;import javax.mail.internet.MimeMultipart; /** * 简单邮件发送器,可单发,群发。 */ public class SimpleMailSender {// 发送邮件的props文件 private finaltransient Properties props = System.getProperties();// 邮件服务器登录验证 private transient MailAuthenticator authenticator;// 邮箱session private transient Session session;/** * 初始化邮件发送器 * @param smtpHostName SMTP邮件服务器地址 * @param username 发送邮件的用户名(地址) * @param password 发送邮件的密码 */ public SimpleMailSender(final String smtpHostName,final String username,final String password) { init(username, password, smtpHostName); } /** * 初始化邮件发送器 * @param username 发送邮件的用户名(地址),并以此解析SMTP服务器地址 * @param password 发送邮件的密码 */ public SimpleMailSender(final String username,final String password) {// 通过邮箱地址解析出smtp服务器,对大多数邮箱都管用 final String smtpHostName = "smtp." + username.split("@")[1]; init(username, password, smtpHostName); } /** * 初始化 * @param username 发送邮件的用户名(地址) * @param password 密码 * @param smtpHostName SMTP主机地址 */ private void init(String username, String password, String smtpHostName) {// 初始化props props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", smtpHostName); // 验证 authenticator = new MailAuthenticator(username, password);// 创建session session = Session.getInstance(props, authenticator); } /** * 发送邮件 * @param recipient收件人邮箱地址 * @param subject邮件主题 * @param content邮件内容 * @throws AddressException * @throws MessagingException */ public void send(String recipient, String subject, String content)throws AddressException, MessagingException { // 创建mime类型邮件 final MimeMessage message = new MimeMessage(session); // 设置发信人 message.setFrom(new InternetAddress(authenticator.getUsername()));// 设置收件人 message.setRecipient(RecipientType.TO, new InternetAddress(recipient));// 设置主题 message.setSubject(subject); // 设置邮件内容 Multipart mp = new MimeMultipart("related");MimeBodyPart mbp = new MimeBodyPart(); mbp.setContent(content.toString(),"text/html;charset=utf-8");mp.addBodyPart(mbp); message.setContent(mp); // 设置邮件内容 // message.setContent(content.toString(), "text/html;charset=utf-8");// 发送 Transport.send(message); } /** * 群发邮件 * @param recipients收件人们 * @param subject 主题 * @param content 内容 * @throws AddressException * @throws MessagingException */ public void send(List recipients, String subject, String content)throws AddressException, MessagingException { // 创建mime类型邮件 final MimeMessage message = new MimeMessage(session); // 设置发信人 message.setFrom(new InternetAddress(authenticator.getUsername()));// 设置收件人们 final int num = recipients.size();InternetAddress[] addresses = new InternetAddress[num];for (int i = 0; i < num; i++) {addresses[i] = new InternetAddress(recipients.get(i));} message.setRecipients(RecipientType.TO, addresses); // 设置主题 message.setSubject(subject); // 设置邮件内容 message.setContent(content.toString(), "text/html;charset=utf-8");// 发送 Transport.send(message); } /** * 发送邮件 * @param recipient收件人邮箱地址 * @param mail邮件对象 * @throws AddressException * @throws MessagingException *   */ public void send(String recipient, SimpleMail mail)throws AddressException, MessagingException { send(recipient, mail.getSubject(), mail.getContent()); } /** * 群发邮件 * @param recipients 收件人们 * @param mail 邮件对 象  * @throws AddressException * @throws MessagingException */ public void send(List recipients, SimpleMail mail)throws AddressException, MessagingException { send(recipients, mail.getSubject(), mail.getContent()); } }三、建立SimpleMail类,这只是个普通邮件类,主要用来封装所要发送的邮件信息。package com.company.simplemail; public class SimpleMail {//邮件中的主题 private String subject; //邮件的内容(正文) private String content; //可根据需要增加其他邮件元素 public void setSubject(String subject) {this.subject = subject; } public void setContent(String content) {this.content = content; } public String getSubject() { return subject; } public String getContent() { return content; } }四、建立ReadHtmlFile类,此类用来读取网页文件(当然也能读取普通文件),将文件转换成String用来发送 package com.company.util; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.methods.GetMethod;public class ReadHtmlFile {public static HttpClient client =new HttpClient();//读取普通文件 public static String readFile(String filename) {File file = new File(filename); Reader reader = null; StringBuffer stb = new StringBuffer(); int charread = 0; char[] temps = newchar[100];try { reader = new InputStreamReader(new FileInputStream(file));while ((charread = reader.read(temps)) != -1) {if (charread == temps.length) { stb.append(temps); temps = new char[100];charread = 0; } } stb.append(temps); reader.close(); } catch (Exception e) { e.printStackTrace(); } String str = stb.toString(); return str; } /** * * 所要发送的网页中,不要使用外联样式,脚本等, * 因为各大邮箱后台的过滤算法会过滤掉css,script等 * 样式用标签style属性写 * 图片、链接必须使用绝对地址 (http://.....) 形式才能接收显示 * */ public static String getSource(String url) {GetMethod method = new GetMethod(url); try { client.executeMethod(method); } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } InputStream in = null; try { in = method.getResponseBodyAsStream(); } catch (IOException e1) { // e1.printStackTrace(); } in = new BufferedInputStream(in); Reader r = new InputStreamReader(in); int c; StringBuffer buffer = new StringBuffer(); try { while ((c = r.read()) != -1) buffer.append((char) c); } catch (IOException e) { e.printStackTrace(); } try { in.close(); } catch (IOException e) { e.printStackTrace(); } method.releaseConnection(); return buffer.toString(); } } 五、建立测试类,可以发送邮件了!!!package com.company.simplemail; import java.util.ArrayList; import java.util.List; import org.junit.Test; import com.company.util.ReadHtmlFile; public class MailTest {/** * 单发 * */ @Test public void testSingleSend(){SimpleMail sm=new SimpleMail(); sm.setSubject("第一封邮件"); String str = ReadHtmlFile.getSource("http://www.baidu.com");//String str = ReadHtmlFile.readFile("这里填写你需要发送的本地文件路径");System.out.println(str); sm.setContent(str); SimpleMailSender sms=new SimpleMailSender(""这里填写你的发件箱","这里填写你的发件箱密码");try { sms.send("这里需要填写接收邮件的邮箱", sm); System.out.println("执行完成!!"); } catch (Exception e) { e.printStackTrace(); } } /** * 群发 * * */ @Test public void testMassSend(){SimpleMail sm=new SimpleMail(); sm.setSubject("第一封邮件"); String str = ReadHtmlFile.getSource("http://www.baidu.com");//String str = ReadHtmlFile.readFile("这里填写需要发送的本地文件路径");System.out.println(str); sm.setContent(str); SimpleMailSender sms=new SimpleMailSender("这里填写你的发件箱","这里填写你的发件箱密码");List recipients=new ArrayList();recipients.add("这里需要填写接收邮件的邮箱"); recipients.add("这里需要填写接收邮件的邮箱"); recipients.add("这里需要填写接收邮件的邮箱"); recipients.add("这里需要填写接收邮件的邮箱"); try { sms.send(recipients, sm); System.out.println("执行完成!!"); } catch (Exception e) { e.printStackTrace(); } } } 最后再次强调:1,所要发送的网页中,不要使用外联样式,脚本等,因为各大邮箱后台的过滤算法会过滤掉css,script等。2,样式用标签style属性写3, 图片、链接必须使用绝对地址 (http://.....) 形式才能接收显示4,一般用于发送的网页文件都是按上面说的要求,自己另外制作的,专门用于邮件发送的网页。在互联网上抓取的网页发送后,一般都不能在收件箱中完美的显示
java_Mail_实现发送文本和html页面格式的邮件 java_Mail_ 实现发送文本和html页面格式的邮件 立即下载

相关推荐

JavaWeb实现邮件发送功能

主要为大家详细介绍了JavaWeb实现邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

java实现邮件发送html页面

java实现邮件发送html页面 1.创建Maven工程,导入相关依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version&g

weixin_46452990的博客 1044

手把手教你用Gazebo+ROS搭建智能小车机械臂系统(含完整配置文件)

本文提供了一份详细的实践指南,手把手教你使用Gazebo和ROS搭建智能小车机械臂仿真系统。内容涵盖从URDF/Xacro模型设计、Gazebo控制器配置到ROS话题通信与系统集成的完整流程,并提供了可复用的配置文件与调试技巧,帮助开发者快速构建并控制一个功能完备的移动操作机器人平台。

sugar的博客 972

Java用发送模板邮件,文本邮件,附件邮件(HTML模板)可附件可图片嵌套,以outlook邮件为例

发送邮件要提前准备好要发送的数据类容,还要提前将发件箱协议名,身份验证信息,服务主机名准备好以outlook邮箱为例,如图所示: 在SMTP中可以看见相关设置。 接下来直接上代码: //这个Map存放Html模板中的类容 Map<String, Object> emap = new HashMap(); emap.put("top0", "你好"); emap.put("top1", "11111"); .

weixin_58301478的博客 7648

用 Python 和 uiautomation 实现微信批量发送

思路是这样,将要发送的人员名单(包括称呼)以及发送内容都维护到Excel里,程序运行时读取Excel里内容,自动搜索人员姓名(微信昵称或备注名),填入要发送的内容,拼接上称呼(如果需要的话)自动点击发送,这样轮巡直至名单人员全部发送完成。、

jankingdom的专栏 1471

Vienna整流器SVPWM调制:7扇区划分与中点电位平衡的MATLAB/Simulink实现解析

本文深入解析Vienna整流器的SVPWM调制技术,重点介绍7扇区划分与中点电位平衡的MATLAB/Simulink实现方法。通过详细的算法推导和仿真模型构建,帮助工程师掌握整流器闭环控制策略,优化功率转换效率。内容涵盖扇区判断逻辑、矢量作用时间计算及中点电位平衡的PID调节等核心技术要点。

weixin_33937499的博客 387

javaMail发送邮件带有HTML内容、附件、图片

在用java发送邮件之前,可以先去了解一下邮件相关的基本知识和一些简单的协议。我这里就不再说这些基本的知识了。我接下来会直接贴上代码以及注释。告诉你实际开发中是怎么用的,有哪些是必要的哪些是非必要的。废话不多说,直接上代码! 1:发送邮件需要准备的基本邮件信息 import java.util.Properties; /** * 发送邮件信息类 * * @author: ...

风丨恨的博客 3083

戴尔笔记本装Ubuntu 20.04,别急着分区!先搞定这个BIOS设置(Intel RST避坑指南)

本文详细介绍了在戴尔笔记本上安装Ubuntu 20.04时遇到的Intel RST技术兼容性问题及解决方案。通过安全切换至AHCI模式,避免安装过程中找不到硬盘的常见问题,并提供双系统分区策略和安装后的优化建议,确保Ubuntu与Windows 10双系统稳定运行。

weixin_31315567的博客 272

java 发送html 格式的邮件

java 发送html 格式的邮件

java学习相关内容 4174

西门子S7-200 SMART PLC控制伺服电机

以下是使用西门子S7-200 SMART PLC控制伺服电机的详细程序框架和配置说明,涵盖硬件接线、PLC配置和基本运动控制逻辑。具体实现需根据伺服电机型号(如松下、三菱、台达等)调整参数。通过以上步骤,可实现伺服电机的基础位置控制。实际应用需根据设备机械参数和伺服驱动器手册调整细节。建议在调试时逐步测试脉冲输出和方向信号是否正常。

CHUXUEZHE8210的博客 6425

《从底层结构开始学习FPGA》目录与传送门

《从底层结构开始学习FPGA》目录与传送门

孤独的单刀 16万+

java中如何实现邮件的发送包括网页文件的发送

说明:1、本程序可实现网页文件、普通文件的发送。 2、实现邮件发送需要三个jar包的支持:commons-codec-1.3.jar、commons-httpclient-3.0.jar(这两个jar包实现抓取互联网网页内容)以及mail.jar 具体实现: 一、首先建立MailAuthenticator类,继承自javax.mail.A...

weixin_33941350的博客 202

硬件工程师学习-硬件的单元测试(UT)(1)电源与时钟的测试

我们在设计的时候,通过控制电源的上电使能管脚或者通过MOSFET、或者专用的电源上电控制芯片,控制不同电源的上电时序,以确保每个芯片的电源上电时序是满足芯片的要求的。我们在测试的时候,需要对相关的要求一一测试,以确认每个上电时序满足要求的。在维基百科中,相位噪声的定义是“时域不稳定性(抖动)导致波形在相位上发生快速、短期、随机的波动,这种波动在频域中的表现即为相位噪声”。单元测试,一般是指基于开发人员自行开展的功能测试及各个功能单元的单元测试,是硬件信号级的测试,分为基本测试和信号完整性测试。

qq_43416206的博客 4034

java 实现邮件发送_Java中如何实现邮件的发送包括网页文件的发送

说明:1、本程序可实现网页文件、普通文件的发送。2、实现邮件发送需要三个jar包的支持:commons-codec-1.3.jar、commons-httpclient-3.0.jar(这两个jar包实现抓取互联网网页内容)以及mail.jar具体实现:一、首先建立MailAuthenticator类,继承自javax.mail.Authenticator类。此类实现发件箱的登陆验证。packag...

weixin_39999859的博客 464

QT C++ AI棉花智能变量灌溉工上位机(信创完整版)

北斗履带灌溉机器人/田间分区电磁阀基站 → 多层土壤温湿度/盐分EC传感器实时采集墒情 → 双目AI视觉扫描棉田长势、病苗分布 → AI融合**生育期+土壤墒情+盐分+棉株长势**计算变量灌溉定额、水肥配比、灌溉时长 → 分区电磁阀/变频水泵变量供水,病弱苗地块减量、干旱地块增量;墒情、盐分、长势多因子闭环修正灌水量;多层土壤含水率(0–10/20–40/40–80cm)、土壤EC盐分、土壤温度、空气温湿度、蒸发量、北斗地块坐标、管道水压、水肥罐液位、分区流量计、水泵电机负载、滴灌带压力反馈。

寒寒豆豆软件公司的博客 187

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

基因家族Motif分析全流程:从序列清洗到可视化及交叉验证

保守基序(Motif)是蛋白质序列中具有特定功能约束的短片段,其发现与分析是理解基因家族进化关系和功能分化的重要抓手。基于无先验知识的模式发现原理,Motif分析能够在不依赖已知数据库的前提下,从同源序列中提取共享的保守特征,为结构域注释、亚家族划分和功能位点定位提供独立证据。在实际工程中,这一技术广泛应用于新基因家族鉴定、抗病基因演化以及转录因子结合位点研究等场景。然而,序列质量、代表序列选择、MEME参数设定以及可视化环节的ID匹配问题,往往显著影响结果的可靠性。本文围绕完整的Motif分析工作流,系统

weixin_34110749的博客 393

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java发送邮件包含js_java中如何实现邮件的发送包括网页文件的发送

package com.company.simplemail;import java.util.List;import java.util.Properties;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;...

weixin_32642653的博客 694

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java中如何实现邮件的发送包括网页文件的发送

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34259159的博客 73

Java邮件群发(web版)

1、本程序可实现网页文件、普通文件的发送。 2、实现邮件发送需要三个jar包的支持:commons-codec-1.3.jar、commons-httpclient-3.0.jar(这两个jar包实现抓取互联网网页内容)以及mail.jar 具体实现: 一、首先建立MailAuthenticator类,继承自javax.mail.Authenticator类。此类实现发件箱的登陆验证。

yundashi168.com 1842

【SpringBoot框架篇】27.集成mail实现邮件推送带网页样式的消息

文章目录1.引入依赖2.邮箱信息配置类3.发送邮件的工具类4.main函数测试发送邮件5.集成js插件ueditor编写带样式的邮件正文5.1.页面集成插件5.2.编写后台接口接收数据并发送邮件6.项目配套代码 1.引入依赖 <!--发送邮件需要的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <a

皓亮君的博客 2513
上一篇: MVC入门
下一篇: Spring MVC 3.0
xiaodanjava
博客等级 码龄15年 90粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值