Commons Email 发送 HtmlEmail失败原因分析

避开这些坑!海天MA1600注塑机数据采集项目经验分享 本文分享了海天MA1600注塑机数据采集项目的实战经验。针对KEBA控制器接口不开放的难题,项目采用专用网关进行协议转换,并详细剖析了网络部署、ModbusTCP配置、数据准确性保障及现场运维中遇到的典型陷阱与解决方案,为同类工业物联网项目提供宝贵参考。 阅读详情

今天折腾了一天,有个业务需要写个简单的邮件发送,但是测试了。从Apache Commons Email 上取得的例子,稍作了修改:

Java代码  收藏代码
  1. public class SendMail {  
  2.     public static void main(String[] args) throws Exception {  
  3.   
  4.         HtmlEmail email = new HtmlEmail();  
  5.         email.setCharset("UTF-8");  
  6.         email.setHostName("smtp.163.com");  
  7.         email.addTo("bestupon@foxmail.com", "BestUpon");  
  8.         email.setFrom("guzhuyunfan@163.com", "蒋绪升");  
  9.         email.setSubject("这是一个主题");  
  10.         email.setAuthentication("username", "password");  
  11.         email.setMsg("这是一个消息...........");  
  12.         URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");  
  13.         String cid = email.embed(url, "Apache logo");  
  14.         email.setHtmlMsg("<html>测试十四和<img src=\"cid:" + cid + "\"></html>");  
  15.         email.setTextMsg("Your email client does not support HTML messages 这是一个TEXTMEG");  
  16.         email.send();  
  17.         System.out.println("发送成功!");  
  18.   
  19.     }  
  20. }  

 这个测试例子,但是使用以上的代码发送邮件,应该的到,也得到了如下的结果:

 

 

但是当我将其放置到Web工程中的时候:

Java代码  收藏代码
  1. package com.jxs.sys.core.global.mail.service.impl;  
  2.   
  3. import java.net.MalformedURLException;  
  4. import java.net.URL;  
  5.   
  6. import org.apache.commons.lang.StringUtils;  
  7. import org.apache.commons.mail.Email;  
  8. import org.apache.commons.mail.EmailException;  
  9. import org.apache.commons.mail.HtmlEmail;  
  10. import org.springframework.stereotype.Service;  
  11.   
  12. import com.jxs.sys.core.base.manager.ManagerSupport;  
  13. import com.jxs.sys.core.global.config.utils.PropertyHolder;  
  14. import com.jxs.sys.core.global.mail.dao.MailDao;  
  15. import com.jxs.sys.core.global.mail.model.Mail;  
  16. import com.jxs.sys.core.global.mail.service.MailManager;  
  17.   
  18. @Service("sendMailManager")  
  19. public class MailManagerImpl extends ManagerSupport<Mail, MailDao> implements MailManager {  
  20.   
  21.     public void sendMail(Mail mailMessage) {  
  22.         try {  
  23.             /*Email msg = null; 
  24.             msg = buildMessage(mailMessage); 
  25.             String msgto = mailMessage.getTo(); 
  26.             if (StringUtils.isNotEmpty(msgto)) { 
  27.                 String msgtos[] = msgto.split(";"); 
  28.                 for (String msto : msgtos) { 
  29.                     String to[] = msto.split(","); 
  30.                     if (to.length == 2) { 
  31.                         msg.addTo(to[1], to[0]); 
  32.                         msg.send(); 
  33.                     } 
  34.                 } 
  35.             }*/  
  36.             HtmlEmail email = new HtmlEmail();  
  37.             email.setCharset("UTF-8");  
  38.             email.setHostName("smtp.163.com");  
  39.             email.addTo("bestupon@foxmail.com", "BestUpon");  
  40.             email.setFrom("guzhuyunfan@163.com", "蒋绪升");  
  41.             email.setSubject("这是一个测试主题");  
  42.             email.setAuthentication("username", "password");  
  43.             email.setMsg("这是一个消息...........");  
  44.             URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");  
  45.             String cid = email.embed(url, "Apache logo");  
  46.             email.setHtmlMsg("<html>测试十测试内容四和<img src=\"cid:" + cid + "\"></html>");  
  47.             email.setTextMsg("Your email client does not support HTML messages 这是一个TEXTMEG");  
  48.             email.send();  
  49.             System.out.println("发送成功!");  
  50.         } catch (EmailException e) {  
  51.             this.log.info("消息发送失败! 原因: " + e.getMessage());  
  52.         } catch (MalformedURLException e) {  
  53.             this.log.info("消息发送失败! 原因: " + e.getMessage());  
  54.         }  
  55.     }  
  56.   
  57.     private Email buildMessage(Mail mailMessage) throws EmailException, MalformedURLException {  
  58.         HtmlEmail email = new HtmlEmail();  
  59.         email.setCharset("UTF-8");  
  60.         email.setHostName(PropertyHolder.getProperty("mail.host"));// 主机  
  61.   
  62.         String from[] = mailMessage.getFrom().split(",");  
  63.         email.setFrom(from[1], from[0]);  
  64.         email.setSubject(mailMessage.getSubject());  
  65.   
  66.         email.setAuthentication(PropertyHolder.getProperty("mail.username"), PropertyHolder.getProperty("mail.password"));  
  67.         email.setHtmlMsg("<html>" + mailMessage.getContent() + "</html>");  
  68.         return email;  
  69.     }  
  70. }  
 

利用Action调用的时候,会出现如下的结果:

Base64代码  收藏代码
  1. ------=_Part_0_12512205.1282227745012  
  2. Content-Type: multipart/related; boundary="----=_Part_1_7008653.1282227745012"  
  3.   
  4. ------=_Part_1_7008653.1282227745012  
  5. Content-Type: multipart/alternative; boundary="----=_Part_2_18379432.1282227745012"  
  6.   
  7. ------=_Part_2_18379432.1282227745012  
  8. Content-Type: text/plain; charset=UTF-8  
  9. Content-Transfer-Encoding: quoted-printable  
  10.   
  11. Your email client does not support HTML messages =E8=BF=99=E6=98=AF=E4=B8=80=  
  12. =E4=B8=AATEXTMEG  
  13. ------=_Part_2_18379432.1282227745012  
  14. Content-Type: text/html; charset=UTF-8  
  15. Content-Transfer-Encoding: quoted-printable  
  16.   
  17. <html>=E6=B5=8B=E8=AF=95=E5=8D=81=E5=9B=9B=E5=92=8C<img src=3D"cid:hiuudkwrl=  
  18. s"></html>  
  19. ------=_Part_2_18379432.1282227745012--  

 这样的结果,测试后了好几次,还是没有解决问题。

 

1.前面按照是过滤器的思路解决,去掉了所有的过滤器,行不通。

2.想着是不是本工程的编码问题,写了一个编码过滤器,行不通,

3.后来就直接新建了一个工程,使用一个Servlet来发送邮件,结果是成功了。

4.将前面的工程代码全部拷贝到上面的工程中,有行不通了.

5.这样猜想问题是出现在了jar包上了,是不是JavaMail的包和Commons Email的包有冲突,去掉了JavaMail的包还是行不通,

6.顺着5的这个思路,将原来所有的jar包都拷贝到这个工程中,不加载其他的任何信息,清理了一遍所有的JAR包,将以下的包,能发送成功了。

问题出现在了geronimo-javamail_1.4_spec-1.3 和 javamail 有冲突,geronimo-javamail_1.4_spec-1.3这个是使用CXF的时候引进的无用包!结果很让人郁闷,花费了我一天的时间!,写下来,警戒切勿引用无用包!


-------------------------------------------------------------

【WRF工具】WRF 模型输出可视化工具 RIP4 阅读详情

相关推荐

OpenMV识别颜色源码

【代码】OpenMV识别颜色源码。

dxt258013的博客 404

php mail收不到邮件,PHPMailer中的$ mail-> send()返回true,但我没有收到邮件

我使用PHPMailer从我的网站发送电子邮件,但$mail->send()返回true,邮件未发送。我的错误日志中没有错误报告。我在Bigrock托管我的网站。我没有在我的代码中发现任何错误。if(isset($_POST['submit'])){require 'class.smtp.php';require 'PHPMailerAutoload.php';ini_set('SMTP',...

weixin_35720035的博客 993

CAN 比特率和采样点计算

架构根据输入频率和比特率自动计算。

ldinvicible的专栏 789

使用apache common email 组件发送邮件

apache common email组件小结。这是个很好的玩意,可以支持单发简单邮件,发附件,发HTML格式邮件,小结如下: import java.io.File; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import

xjh1991xjh的专栏 2059

PSI5协议技术文档与驱动开发指南

• 供电与数据复用:ECU通过双绞线为传感器提供稳压(典型值5V-11V),同时检测线路电流变化实现数据传输。• 同步信号:ECU发送3.5V电压脉冲(上升沿触发传感器响应),用于时序同步。• 安全气囊:PSI5-P模式实现多碰撞传感器同步采样(响应时间<10ms)• CRC-3(3位):ASIL-B以上功能安全要求(如动力总成传感器)• 奇偶校验(1位):适用于低安全等级场景(如PSI5-P10P模式)• 典型应用:PSI5-P(并行总线)、PSI5-U(通用总线)

u012733413的博客 2870

FAST-LIO2实战:从零搭建香港大学火星实验室SLAM框架(附官方数据集测试指南)

本文提供了一份详细的FAST-LIO2实战指南,帮助读者从零开始搭建香港大学火星实验室开源的这一高效激光惯性里程计框架。内容涵盖系统环境配置、依赖安装、源码编译、官方数据集测试以及参数调优,旨在让开发者快速上手并应用于机器人SLAM项目。

ppp33的博客 689

HtmlEmail简单发送邮件示例

HtmlEmail email = new HtmlEmail(); try { // 设置邮件服务器的名称 email.setHostName("smtp.163.com"); // 设置发送账户和密码 email.setAuthentication("账号","密码"); // 设置邮件发送者 email.setFrom("账号"); ...

qq_31946323的博客 1809

使用Linux安装yum报错 E: Unable to correct problems, you have held broken packages.

使用Linux安装yum报错 E: Unable to correct problems, you have held broken packages.

weixin_43205954的博客 2462

邮箱发送html邮件,遇到的问题(如阿里邮箱如何发送html邮件、qq向阿里发送邮件样式丢失等)解决方法

缘起 公司要求制作html格式的邮件用来在邮箱里发送,要求要兼容各大主流邮箱,设计给了样式按照其实现后测试遇到诸多问题。 一、阿里邮箱、outlook无法粘贴html源代码 阿里和outlook邮箱发送html文件是直接打开你的html文件然后在网页中全选你的页面复制然后直接粘贴进去就可以发送的,不像qq和163可以复制自己源码进去直接生成的。 二、div+css布局在阿里、outlook里会有各类问题,如样式丢失问题 起初自己是使用div+css布局(css记得只能写行内,嵌入式和外联都是不允许的,js也

m0_37973043的博客 7368

金属表面粗糙度对信号的影响

之前的文章中,已经采用CST中的微带线模块进行了很多的仿真分析,本文将再次利用这些模块,从另外一个角度去探讨关于传输线的使用问题--金属的表面粗糙度。 众所周知,数据传输中,当速率越来越高时,信号在金属介质中的趋肤效应就愈发明显,能量就会更多地集中于金属的表面进行流动,此时,如果金属表面不再光滑而是凹凸不平,能量的传输过程就会产生波动,当这种波动积累到一定的量级,就会严重影响到传输线的阻抗稳定性,从而导致信号失真和传输异常。

一只豌豆象的博客 2898

东方财富个股实时行情爬虫实战:从入门到精通,手把手教你构建股票数据采集系统

在量化投资、股市分析和数据挖掘等领域,获取实时、准确的股票行情数据是第一步也是至关重要的一步。东方财富网作为国内最大的财经门户网站之一,提供了丰富的股票数据和实时行情接口。本文将带你从零开始,构建一个完整的东方财富个股实时行情爬虫系统,涵盖股票代码遍历、JSON接口分析、反爬虫策略应对、数据持久化存储等核心技术点。目录前言一、项目背景与目标1.1 为什么要爬取东方财富数据?1.2 项目目标1.3 技术栈二、接口分析与逆向工程2.1 寻找真实数据接口2.2 简化接口2.3 字段含义对照表三、股票代码获取。

2201_76125261的博客 148

Java HtmlEmail 使用QQ邮箱发送邮件报错 530 Error: A secure connection is requiered(such as ssl)...

在Java中使用HtmlEmailQQ邮箱发送邮件时报错: Authentication failed; nested exception is javax.mail.AuthenticationFailedException: 530 Error: A secure connectio...

996

Allegro172版本多人协同在线设计操作指导

首先用户需要在同一个局域网下,并且Allegro172的版本必须一致,比如都是S082的版本。另外一个用户同样打开相同版本的172,选择Symphony Team design。Allegro升级到172版本,可以支持多人协同设计,并且实时同步,具体操作如下。协同模式下,不能直接保存文件,需要另存版本,注意时常保存文件,以免丢失数据。第一个用户打开PCB,选择Symphony Team design。等待一会出现如下窗口,表示已经共享成功了,并且记下IP地址。出现一个窗口,输出开共享用户的IP地址。

weixin_54787054的博客 4957

java htmlemail_java - HtmlEmail发送html邮件

之前没做过用JavaMail来发送邮件,在网上搜索点资料,自己写了2方法测试了下:在自己的项目中,引入三个包 mail.jar ,commons-email-X.X.jar ,activation.jar。下载地址http://u.115.com/file/bhaewa0d下面是我的代码类:public class EmailMain {/*** 方法测试一个简单拼凑的html*/public s...

weixin_36353180的博客 495

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java发送邮件失败:报错org.apache.commons.mail.EmailException: Sending the email to the following server faile

Disconnected from the target VM, address: '127.0.0.1:49693', transport: 'socket' org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.163.com:25 org.apache.c...

Shirley的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

关于common-email 发送邮件失败问题!!!

1.首先说明一下场景:邮件服务器为:腾讯的企业邮箱服务器,有文档说明:http://service.exmail.qq.com/cgi-bin/help?id=28&amp;no=1000585&amp;subtype=1,POP3/SMTP协议接收邮件服务器:pop.exmail.qq.com ,使用SSL,端口号995发送邮件服务器:smtp.exmail.qq.com ,使用SSL,端口号4...

zn353010922的博客 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

org.apache.commons.mail.EmailException: From address required

org.apache.commons.mail.EmailException: From address required at org.apache.commons.mail.Email.buildMimeMessage(Email.java:1382) ~[commons-email-1.5.jar:1.5] at org.apache.commons.mail.MultiPa...

1839

html在线发邮件代码,通过HtmlEmail 发送邮件(示例代码)

今天第一次来上海市虹口图书馆上自习,感觉还是很爽的。自己撸代码学会了发送邮件。啥都不说了,直接撸代码吧!首先 必须引进来三个jar包:compile ‘javax.mail:mail:1.4.7‘compile ‘org.apache.commons:commons-email:1.3.2‘compile ‘javax.activation:activation:1.1‘这是我gradle配置文件...

weixin_36410567的博客 2893

HtmlEmail发送邮件,163邮件

本文使用的是163邮箱:1.开启163邮件的pop3服务开启服务的时候会让输入一个授权码,那个授权码就是你发送邮件时的密码,请牢记。2.导入包&lt;dependency&gt; &lt;groupId&gt;org.apache.commons&lt;/groupId&gt; &lt;artifactId&gt;commons-email&lt;/artifactId&gt; ...

hebo5207_的博客 1万+

JAVA实现发送邮件

第一步: 创建HtmlEmail实例对象 HtmlEmail email=new HtmlEmail();//创建一个HtmlEmail实例对象 设置邮箱的SMTP服务器,登录相对应的邮箱官网,去拿就行了 email.setHostName(“smtp.163.com”);//邮箱的SMTP服务器,一般123邮箱的是smtp.123.com,qq邮箱为smtp.qq.com 和设置发送的字符集类型 email.setCharset(“utf-8”);//设置发送的字符类型 第二步 设置收件人 email.

weixin_47174945的博客 426

JavaMail邮件发送不成功的那些坑人情况及分析说明

前言   JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有详细的中文注解。但是由于JavaMail的机制设置不够完善,特别是异常出错时的参考信息太少,给初学者造成了不少麻烦,而我就是其中之一。在此,把我遇到过得那些坑总结出来,以免大家重蹈覆辙,浪费时间。(注:后续还有遇到新的问题,我会持续更新到这里) 一、JavaMai...

weixin_34130269的博客 6337

java.lang.IllegalArgumentException: Invalid uri 'http://xxxxxx' : Invalid query 异常通过URLEncoder来解决。

在用httpclient的POST请求时,出现以下错误。 Exception in thread "main" java.lang.IllegalArgumentException: Invalid uri 'http://xxxxxx': Invalid query at org.apache.commons.httpclient.HttpMethodBase.&lt;init&gt;(Ht...

LemonTalk 1万+

java 发送邮件 例子 (带附件的) 使用org.apache.commons.mail

package mail; import java.io.UnsupportedEncodingException; import javax.mail.internet.MimeUtility; import org.apache.commons.mail.EmailAttachment; import org.apache.commons.mail.EmailException; i...

982

email中添加URL时注意事项

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

weixin_34249678的博客 770

Commons-Email发送邮件(翻译自官网)

所需jar包: org.apache.commons commons-email 1.3.1 commons-logging commons-logging 1.1.1 1、发送简单文本 Email email = new SimpleEmail(); email.setHostName("smtp.googlemail.com");

z69183787的专栏 5564

HtmlEmail实现简单发送邮件

  一般发送邮件的话系统项目中可能会用到,像一些通知信息自动发送等,会用到发送邮件的情况,发送邮件有好多种,包括设置各种格式,添加图片附件等,当然今天我们先看一下怎么实现发送成功。   工欲善其事必先利其器,开始之前,一定要引入依赖 ,不然程序会报错   引入pom.xml文件 <!--发送邮件引入jar包--> <dependency > ...

weixin_30443731的博客 895
上一篇: 使用javamail出现java.net.SocketException: Network is unreachable: connect异常 解决方法
下一篇: og4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析
zljjava
博客等级 码龄15年 155粉丝 15原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值