博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
针对发送网络附件的java方法(使用Apache的jar包调用)
阅读量:4615 次
发布时间:2019-06-09

本文共 4755 字,大约阅读时间需要 15 分钟。

1、先要在pom.xml文件中引入对应的jar包

org.apache.commons
commons-email
1.3.2

2、发送网路哦邮件的方法

import org.apache.commons.mail.*;import org.apache.commons.mail.resolver.DataSourceCompositeResolver;import org.apache.commons.mail.resolver.DataSourceFileResolver;import org.apache.commons.mail.resolver.DataSourceUrlResolver;

 

/**     * 为邮件添加附件     * @param email 邮件     * @param urls 附件链接     * @param names 附件名称,最好有后缀名才能预览文件     */    public void addAttachment(ImageHtmlEmail email, List
urls, List
names) { // 保证附件名的长度和链接一一对应 while (urls.size() > names.size()) { names.add(""); } for (int i = 0; i < urls.size(); i++) { EmailAttachment attachment = new EmailAttachment(); try { attachment.setURL(new URL(urls.get(i))); attachment.setDisposition(EmailAttachment.ATTACHMENT);// attachment.setDescription("Apache logo"); attachment.setName(names.get(i)); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { email.attach(attachment); // 将附件添加到邮件中 } catch (EmailException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
//添加网络附件    public  boolean sendHtmlEmailWithImg(IMailService mailService, String huiyi_id, String toMail, String subject, String content, List
urls, List
names) throws Exception {// public boolean sendHtmlEmailWithImg(ExHashMap mail, String huiyi_id, String toMail, String subject, String content, List
urls, List
names) throws Exception { //获取发送邮箱 System.setProperty("java.net.preferIPv4Stack", "true"); System.setProperty("mail.smtp.ssl.enable", "true"); ExHashMap mail = getMail(mailService, huiyi_id); String htmlEmailContent = content; ImageHtmlEmail email = new ImageHtmlEmail();//用ImageHtmlEmail来发送 email.setSSLOnConnect(true); email.setDebug(true);//可以看到执行过程的debug信息 email.setCharset("UTF-8");//防止乱码 email.setSSLCheckServerIdentity(true); email.setSslSmtpPort(mail.getString("port")); // 设定SSL端口 email.setSmtpPort(mail.getInt("port")); //解析本地图片和网络图片都有的html文件重点就是下面这两行; //ImageHtmlEmail通过setDataSourceResolver来识别并嵌入图片 //查看DataSourceResolver的继承结构发现有几个好用的子类 DataSourceResolver[] dataSourceResolvers = new DataSourceResolver[]{
new DataSourceFileResolver(),//添加DataSourceFileResolver用于解析本地图片 new DataSourceUrlResolver(new URL("http://"))};//添加DataSourceUrlResolver用于解析网络图片,注意:new URL("http://") //DataSourceCompositeResolver类可以加入多个DataSourceResolver, //把需要的DataSourceResolver放到一个数组里传进去就可以了; email.setDataSourceResolver(new DataSourceCompositeResolver(dataSourceResolvers)); // 邮箱登陆信息 email.setHostName(mail.getString("smtp"));//email.setHostName("smtp.qq.com"); email.addTo(toMail, toMail);//email.addTo("*@qq.com", "Jo"); email.setFrom(mail.getString("username"), mail.getString("username")); //email.setFrom("*@qq.com", "Me"); // 必须和登陆邮箱名一致,否则会报错 email.setAuthenticator(new DefaultAuthenticator(mail.getString("username"), mail.getString("password"))); // 邮箱名和登陆密码 email.setSubject(subject);//email.setSubject("发送一张图片,看看是否可以收到。"); //添加附件 addAttachment(email,urls,names); email.setHtmlMsg(htmlEmailContent); //如果客户端不去持HTML格式会显示这句话,不过应该很少有不支持HTML格式的客户端了吧 email.setTextMsg("你的邮箱客户端不支持HTML格式邮件"); String res = email.send(); return true; }
public static void main(String[] args){        ExHashMap email = new ExHashMap();        email.put("smtp","smtp.263.net");        email.put("port","465");        email.put("username","conference@ciccst.org.cn");        email.put("password","Mail_Sent2017");        List
urls = new ArrayList
(); urls.add("https://img1.360buyimg.com/imgb/s250x250_jfs/t6391/84/85826224/305484/7812e706/59390161N9b653d78.jpg"); List
names = new ArrayList
(); names.add("hahaha.jpg"); MailUtil mailUtil = new MailUtil(); try { mailUtil.sendHtmlEmailWithImg(email, "huiyi_id", "744924365@qq.com", "邮件标题", "邮件内容", urls, names); }catch (Exception e){ e.printStackTrace(); } }

 

转载于:https://www.cnblogs.com/dhrwawa/p/11397080.html

你可能感兴趣的文章
ORACLE telnet 1521 不通及ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务的解决...
查看>>
logging 模块使用
查看>>
fastjson序列化排序问题
查看>>
AcDream 1080 面面数 递推Or待定系数法
查看>>
程序包org.apache.commons.beanutils不存在
查看>>
创建数据库的方法
查看>>
跳台阶
查看>>
Matlab判断一个数值的奇偶性
查看>>
【学习随笔】JS初涉
查看>>
将BT转为磁力链接
查看>>
java poi读取excel公式,返回计算值(转)
查看>>
Zabbix 历史数据存储到 Elasticsearch
查看>>
触发器(2)
查看>>
JavaScript DOM操作案例点击按钮修改div的属性
查看>>
防止js全局变量污染方法总结
查看>>
高斯消元法
查看>>
vsFlex8.ocx、vsPrint8.ocx、vsRpt8.ocx破解下载
查看>>
ajax传值后在新页面js调用
查看>>
Spring 中使用 Mybatis generator 自动生成代码
查看>>
IP通信基础 4月8日
查看>>