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

 <!--添加邮件的网络附件 start-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.3.2</version>
</dependency>
<!--添加邮件的网络附件 end-->

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<String> urls, List<String> 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<String> urls, List<String> names) throws Exception {
// public boolean sendHtmlEmailWithImg(ExHashMap mail, String huiyi_id, String toMail, String subject, String content, List<String> urls, List<String> 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<String> urls = new ArrayList<String>();
urls.add("https://img1.360buyimg.com/imgb/s250x250_jfs/t6391/84/85826224/305484/7812e706/59390161N9b653d78.jpg");
List<String> names = new ArrayList<String>();
names.add("hahaha.jpg"); MailUtil mailUtil = new MailUtil();
try {
mailUtil.sendHtmlEmailWithImg(email, "huiyi_id", "744924365@qq.com", "邮件标题", "邮件内容", urls, names);
}catch (Exception e){
e.printStackTrace();
}
}

针对发送网络附件的java方法(使用Apache的jar包调用)的更多相关文章

  1. php中PHPMailer发送带附件的电子邮件方法

    摘要: 本文讲的是php中PHPMailer发送带附件的电子邮件方法, .首先到http://phpmailer.worxware.com/ 下载最新版本的程序包 2.下载完成后,找到class.ph ...

  2. 单个java文件打成可执行jar包

    1 概述 使用JDK自带的jar与java将单个java文件打成可执行jar包并运行. 当然也可以使用IDE完成,使用Maven只需要一个简单的package,但是单个文件嘛,没必要这么"凶 ...

  3. Intellij IDEA下导出Java工程的可运行JAR包

    Intellij IDEA下导出Java工程的可运行JAR包 昨天一直向导出一个Java工程的可运行JAR包,然后查阅网上的资料以及自己一遍一遍的尝试,均以失败告终.可以导出JAR包,但是导出的JAR ...

  4. 【原创】Java基础之简单修改jar包中的class

    有时需要修改很多jar(假设这些jar都位于lib目录)中其中一个jar中的某一个类,而且又没有原始代码或ide,这时最简单的方式是: 1 进入lib目录 # cd lib # ls test.jar ...

  5. Java项目生成可执行jar包、exe文件以及在Windows下的安装文件

    1.如何通过eclipse将Java项目生成可执行jar包 首先把在eclipse下的java项目导出jar file 下一步 下一步 下一步 最后点击完成,便生成了可执行的jar文件.可以在刚刚选择 ...

  6. java eclipse导出可运行jar包(java服务)和导入

    java   eclipse导出可运行jar包(java服务)和导入 二.导出可运行包步骤: 1.选择要导出的项目:  2.右键项目-单击export:  3.选择导出类型:(Runnable JAR ...

  7. 多个java文件编译并打成jar包经典方法

    首先,多个java文件的编译 find . -type f -name *.java > compilelist (.代表当前路径) javac -cp "$CLASSPATH&quo ...

  8. Java程序中使用Spire Jar包报java.lang.NoSuchMethodError类型错误的解决方法

    Jar包功能概述 使用Spire系列的Jar包可以操作Word.Excel.PPT.PDF.Barcode等格式的文件,分别对应使用的jar包是Spire.Doc for Java.Spire.XLS ...

  9. 网上下载的 java开源项目 如何 打jar包

    目前很多java开源项目(例如qlexpress)只提供了源码,没有提供jar,下面提供maven打jar包的方法. 1.进入qlexpress下载后源代码所在的目录,此目录应包含pom.xml,如下 ...

随机推荐

  1. .Net平台调用の参数对应

    具体对应参见官方<----点击此处 C#和C++的互操作性,同行的文章不错,点我跳转 //C++中的DLL函数原型为  //extern "C" __declspec(dll ...

  2. UPDATE - 更新一个表中的行

    SYNOPSIS UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...] [ FROM fromlist ] [ WHE ...

  3. selenium 自动下载文件

    #coding=utf-8 from selenium import webdriver #实例化一个火狐配置文件 fp = webdriver.FirefoxProfile() #设置各项参数,参数 ...

  4. Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci...

    最近刚接触mysql,今天用mysql插入中文字符的时候,程序报错“Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_g ...

  5. Cacti 添加 CPU 监听

    Cacti版本: 0.8.8a 將 http://forums.cacti.net/about29832-0-asc-135.html 网址的template下载,有1,2,4,8,12,16核心的t ...

  6. mui框架开发aop的跨页面传值

    mui开发跨平台app,其实不乏会涉及到跨页面传值,今天给大家简单介绍一种常用也是简单的传值方法 咱在这里设置一个场景,就是两个页面进入到同一页面展示不同的元素,此时需要在这两个页面各自设置一个区别的 ...

  7. CGLIB 详解

    依赖 <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> ...

  8. NX二次开发-获得图纸抑制尺寸的表达式UF_DRF_ask_controlling_exp

    #include <uf.h> #include <uf_modl.h> #include <uf_drf.h> #include <uf_obj.h> ...

  9. Java--下大雪模拟

    package firstpack; import java.awt.*; public class MyStar { public static void main(String[] args) { ...

  10. 测试Tensorflow-GPU的例子

    import tensorflow as tf # import os # os.environ['TF_CPP_MIN_LOG_LEVEL']='2' a = tf.placeholder(tf.i ...