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的,所以smtpserver为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!"); //发送邮件,參数为邮件信息,发件人邮箱和发件人邮箱password Transport.send(msg, "theonegis@sina.cn", "这里是发件人的password"); } catch (MessagingException mex) { System.err.println("Send failed! Exception: " + mex); } } }

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115687.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql数据库面试题目及答案_数据库面试题2021

    mysql数据库面试题目及答案_数据库面试题2021MySQL数据库面试题(2022版)文章目录一、基础基本概念MySQL有哪些数据库类型?CHAR和VARCHAR区别?数据库设计什么是三大范式?什么是范式和反范式,以及各自优缺点?二、索引索引的几种类型或分类?索引的优缺点?索引设计原则?索引的数据结构?Hash和B+树索引的区别?为何使用B+树而非B树做索引?什么是最左匹配原则?什么是覆盖索引?什么是索引下推?三、存储存储引擎有哪些常见的存储引擎?MyISAM和InnoDB的区别?InnoDB的四大特性?InnoDB为.

    2022年10月8日
    3
  • Tensorflow2.0使用Resnet18进行数据训练[通俗易懂]

    Tensorflow2.0使用Resnet18进行数据训练[通俗易懂]在今年的3月7号,谷歌在TensorflowDeveloperSummit2019大会上发布TensorFlow2.0Alpha版,随后又发布的了Beta版本。Resnet18结构Tensorflow搭建Resnet18导入第三方库importtensorflowastffromtensorflowimportkerasfromtensorflo…

    2022年5月9日
    157
  • 使用python进行方差分析_python多因素方差分析

    使用python进行方差分析_python多因素方差分析利用python实现方差分析简介 方差分析是一种常用的对数据进行分析的方法,用于两个及两个以上样本均数和方差差别的显著性检验。本文介绍单因素方差分析和双因素方差分析。 方差分析存在三个假设: 1、各样本总体服从正态分布。 2、各样本总体方差一样。 3、各样本总体相互独立。单因素方差分析 单因素方差分析就是在只有一种影响因素下判断各个样本间的均值差别的显著性。 数据会…

    2022年10月15日
    3
  • Java初学者常用的开发工具都有哪些?[通俗易懂]

    Java初学者常用的开发工具都有哪些?[通俗易懂]俗话说的好“工欲善其事必先利其器”,要想学好java这门语言,选择一款好用顺手的开发工具是必不可少的。java初学者常用源码编辑工具介绍java源代码本质上其实就是普通的文本文件,所以理论上来说任何可以编辑文本文件的编辑器都可以作为我们的java代码编辑工具。比如:WINDOWS记事本、写字板、word等。但是这些简单工具没有语法的高亮提示、自动完成等功能,这些功能的缺失会大大降低代码的编写效率。学习开发时一般我们不会选用这些简…

    2022年7月7日
    18
  • HashMap 和 Hashtable 的区别[通俗易懂]

    HashMap 和 Hashtable 的区别[通俗易懂]HashMap和Hashtable的区别线程是否安全:HashMap是非线程安全的,HashTable是线程安全的,因为HashTable内部的方法基本都经过synchronized修饰。(如果你要保证线程安全的话就使用ConcurrentHashMap吧!);效率:因为线程安全的问题,HashMap要比HashTable效率高一点。另外,HashTable基本被淘汰,不要在代码中使用它;对Nullkey和Nullvalue的支持:HashMap可以存

    2025年11月28日
    9
  • 入选互联网名人堂的三位中国人[通俗易懂]

    入选互联网名人堂的三位中国人[通俗易懂]互联网名人堂(TheInternetHallofFame)由互联网协会(InternetSociety)创建于2012年,目的在于表彰为互联网发展做出杰出贡献的人物,被认为是全球互联网社群的最高荣誉。互联网名人堂的获奖人分为三类:互联网创始人/先驱(Pioneers)互联网创新者/改革者(Innovators)推动全球互联者(GlobalConnectors)除了2…

    2022年6月16日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号