专栏首页TheOneGIS空间站Java发送邮件的简单实现

Java发送邮件的简单实现

使用Oracle官方的JavaMail进行实现,JavaMail下载地址:https://java.net/projects/javamail/pages/Home 将下载好的jar包添加到工程路径中就OK了,我使用的是最新的1.5.2版本的javax.mail.jar。

关于邮件协议可参考:什么是POP3、SMTP和IMAP? 下面的示例中是通过我的新浪邮箱(theonegis@sina.cn)给QQ邮箱(123456789@qq.com不知道是谁的邮箱)发邮件,下面给出实现代码:

import java.util.Date;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;

public class SimpleMail {
    public static void main(String[] args) {
        Properties props = new Properties();
        //这里使用smtp协议发送邮件,我的新浪邮箱是.cn的不是.com的,所以smtp服务器为smtp.sina.cn
        props.put("mail.smtp.host", "smtp.sina.cn");
        Session session = Session.getInstance(props, null);

        try {
            MimeMessage msg = new MimeMessage(session);
            //设置发件人邮箱
            msg.setFrom("theonegis@sina.cn");
            //设置收件人邮箱
            msg.setRecipients(Message.RecipientType.TO, "123456789@qq.com");
            //设置主题
            msg.setSubject("This is a test");
            //设置日期
            msg.setSentDate(new Date());
            //设置正文内容
            msg.setText("How are you?\nThis is a test, please do not reply!");
            //发送邮件,参数为邮件信息,发件人邮箱和发件人邮箱密码
            Transport.send(msg, "theonegis@sina.cn", "这里是发件人的密码");
        } catch (MessagingException mex) {
            System.err.println("Send failed! Exception: " + mex);
        }
    }
}

JavaMail中比较重要的的类是Session、Store和Folder。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 十年Java架构师大厂实战(年薪80W)

    BAT一直是程序员心神向往的地方,那些最最前沿的一线互联网技术都出自这些合称为大厂的地方,那里人才济济,哪怕实战经验不好的程序员进了那里,都会受到技术的熏陶,培...

    美的让人心动
  • GuavaCache学习笔记二:Java四大引用类型回顾

    上一篇已经讲了,如何自己实现一个LRU算法。但是那种只是最基本的实现了LRU的剔除策略,并不能在生产中去使用。因为Guava Cache中使用的是SoftRef...

    一枝花算不算浪漫
  • C# 多线程七之Parallel

    关于Parallel不想说太多,因为它是Task的语法糖,至少我是这么理解的,官方文档也是这么说的,它本身就是基本Task的.假设我们有一个集合,不管是什么集合...

    郑小超.
  • C# 多线程六之Task(任务)三之任务工厂

    前面两篇关于Task的随笔,C# 多线程五之Task(任务)一 和 C# 多线程六之Task(任务)二,介绍了关于Task的一些基本的用法,以及一些使用的要点,...

    郑小超.
  • 启动期间的内存管理之pagging_init初始化分页机制--Linux内存管理(十四)

    在初始化内存的结点和内存区域之前, 内核先通过pagging_init初始化了内核的分页机制.

    233333
  • 一分钟上手Rinetd——端口转发工具 原

    iptables 的功能当然强大,但理解与设置却有点抽象,便通过google认识了rinetd。

    wuweixiang
  • 手机锁屏js倒计时停止问题解决办法探索

    如图,有这么个需求,测试人员在测试过程中提了一个bug,手机锁屏再唤醒倒计时时间没有更新,仍从锁屏的时间继续,于是开始寻找解决之法

    吴裕超
  • 剑指offer 把数组排成最小的数

    输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字...

    week
  • 启动期间的内存管理之build_zonelists初始化备用内存域列表zonelists--Linux内存管理(十三)

    我们之前讲了在memblock完成之后, 内存初始化开始进入第二阶段, 第二阶段是一个漫长的过程, 它执行了一系列复杂的操作, 从体系结构相关信息的初始化慢慢向...

    233333
  • tendermint-peers讲解

    Peer Exchange Reactor (PEX)确保与好的peers进行连接和通信

    _simple

扫码关注云+社区

领取腾讯云代金券