文档章节

java发送邮件

谦谦君子
 谦谦君子
发布于 2015/07/07 14:43
字数 489
阅读 299
收藏 19

需要在代码里面发邮件是很经常的事情,包括找回密码,通知用户领奖,监控报警等。

在Java里面实现比较简单,Oracle自己提供了JavaMail, 不过API比较底层,用起来不方便,可以自己封装下,也可以直接使用Apache的开源项目Commons Email。 下面的代码,可以以小马哥的名义给自己发邮件,该功能仅用于测试,请谨慎使用,产生的问题,本人概不负责。 /微笑

import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;

import java.net.MalformedURLException;
import java.net.URL;

public class MultiPartEmailTest {
    public static void main(String[] args) throws EmailException, MalformedURLException {
        MultiPartEmail email = new MultiPartEmail();

        email.setHostName("smtp.tencent.com");
//        email.setAuthentication("youremail@qq.com", "***");//邮件服务器验证:用户名/密码
        email.setCharset("UTF-8");

        email.setFrom("pony@qq.com", "马化腾");
        email.addTo("youremail@qq.com");

        email.setSubject("加油奋斗!");
        email.setMsg("come on! 加油奋斗吧,早晚有一天你会出任CEO,迎娶白富美,走上人生巅峰! http://www.qq.com\n\n\n pony");

        EmailAttachment attachment = new EmailAttachment();
        attachment.setPath("d:/lzl.jpg");// 本地文件
        attachment.setDisposition(EmailAttachment.ATTACHMENT);
        attachment.setDescription("林志玲1");
        attachment.setName("lzl_1");
        email.attach(attachment);

        EmailAttachment attachment2 = new EmailAttachment();
        attachment2.setURL(new URL("http://mat1.qq.com/datalib_img/star/pic/lib/2007-01-15/2007011511104716122311.jpg"));//远程文件
        attachment2.setDisposition(EmailAttachment.ATTACHMENT);
        attachment2.setDescription("林志玲2");
        attachment2.setName("lzl_2");
        email.attach(attachment2);

        email.send();
    }
}

Commons Email支持好几种格式,包括简单文本,html,带附件等。需要的可以自己查看文档。

基于smtp的协议邮件协议很简单,大家甚至可以直接用telnet来发送,可以参考这边文章Java Mail(一):telnet实现发送收取邮件.

一般公司内网没有验证发送方,你可以冒充公司任何一个员工发送邮件(包括你们老板),一般外面的邮件服务器,比如qq, 126, 163等,是需要验证密码的。重申一遍,别用这个代码干坏事,后果自负, 与本人无关!

Refs

  1. http://blog.csdn.net/ghsau/article/details/8602076
  2. http://blog.csdn.net/ghsau/article/details/17839983
  3. http://haolloyin.blog.51cto.com/1177454/354320
  4. http://www.runoob.com/java/java-sending-email.html
  5. https://commons.apache.org/proper/commons-email/
  6. http://blog.csdn.net/qiaqia609/article/details/11580589

Written with StackEdit.

© 著作权归作者所有

下一篇: Java反射
谦谦君子
粉丝 37
博文 61
码字总数 56919
作品 0
成都
程序员
私信 提问
Java 发送qq邮件基础和封装

前文摘自 菜鸟教程 :http://www.runoob.com/java/java-sending-email.html 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Frame...

fantj666
2018/03/18
0
0
Java 9 已在路上,公共审查规范草案出来了

Oracle 的 Iris Clark 在发送给 OpenJDK 邮件列表的邮件中宣布,Java 9 的公共审查规范草案已可用。并表示,如果所有人都对草案感到满意,会将其提交给 JCP 项目管理办公室(PMO),以便下星...

王练
2017/03/11
3.9K
10
[手记]使用java Mail发送邮件.

因为项目中要用到这个功能,写出来了.所以和大家分享一下.首先,完成javamail发送电子邮件,需要到oracle网站上下载javamail的jar包:地址为:http://www.oracle.com/technetwork/java/javamail...

被风遗忘
2012/05/06
533
0
Java 发送邮件实现(JavaMail 和 Spring 实现)

Java 实现邮件的发送,使用 JavaMail 和 Spring 实现 一、使用 JavaMail JavaMail 是 Java 处理电子邮件相关的编程接口,但是没有被加在标准的Java开发工具包中(Java Development Kit),所...

非摩尔根
01/17
155
0
关于Java程序发邮件的疑问

最近心血来潮,想自己做个网站,java web 类型,现在关于网站给用户发邮件有个疑问,网上找的那些用 mail.jar 发邮件时可以发送给的,但是我想问下成规模的那些 java web 网站也是用这个 ma...

forwy
2017/03/14
99
1

没有更多内容

加载失败,请刷新页面

加载更多

nginx访问日志/日志切割/静态文件过期时间/防盗链

Nginx访问日志主要记录部署在nginx上的网站访问数据,日志格式定义在nginx主配置文件中。 nginx主配置文件:/etc/nginx/nginx.conf 查看nginx主配置文件: ```markup [root@linux ~]# cat /e...

asnfuy
27分钟前
8
0
JS_高程4.变量,作用域和内存问题(2)执行环境及作用域

本文转载于:专业的前端网站➨JS_高程4.变量,作用域和内存问题(2)执行环境及作用域 1.执行环境:执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为,       每个执...

前端老手
31分钟前
5
0
手机迅雷下载的文件,电脑上找不到问题

不知道手机迅雷怎么做到的,手机迅雷下载的文件,手机上可以看的到 但连电脑后, 电脑上看不到文件 . 尝试了打开查看隐藏文件, 但没有效果 . 手机上查询文件权限 也是对的 . 可读,可写, 不隐藏 ...

ol_O_O_lo
33分钟前
5
0
python学习11:Python tuple元组详解

元组是 Python 中另一个重要的序列结构,和列表类似,也是由一系列按特定顺序排序的元素组成。和列表不同的是,列表可以任意操作元素,是可变序列;而元组是不可变序列,即元组中的元素不可以...

太空堡垒185
45分钟前
5
0
Java实现数据结构之线性结构

一、顺序表 顺序表本质是使用数组储存数组的一种数据结构,在计算机的储存中是连续的分配内存的。 下面是我自己使用java实现的简单顺序表结构 package list; public class MyArrayList<E> { ...

daxiongdi
48分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部