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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • prepareStatement与Statement的区别

    prepareStatement与Statement的区别prepareStatement与Statement的区别1.区别:stmt=conn.CreateStatement();resultSetrs=stmt.executeQuery(sql);上面是statement的用法============================下面是PrepareStatement的用法ptmt=conn.Prepa

    2022年5月29日
    46
  • iframe自适应高度和宽度[通俗易懂]

    iframe自适应高度和宽度[通俗易懂]iframe自适应高度和宽度可以通过onload事件来操作,如:functioniframLoad(ifm){ try{ $(ifm).height(ifm.contentWindow.document.body.scrollHeight); $(ifm).width(ifm.cont

    2022年10月12日
    1
  • win7关机命令_win7cmd关机命令

    win7关机命令_win7cmd关机命令通过DOS命令“shutdown”来实现Windows7系统下的定时关机功能。使用at命令at12:00shutdown-s,取消:at/deleteshutdown-s-t20-c

    2022年8月4日
    3
  • perl文件句柄_perl文件句柄信号引用

    perl文件句柄_perl文件句柄信号引用perl哈希操作# 文件句柄,标准文件句柄有STDINSTDOUTSTDERRDATAARGVARGVOUT# 建立名字为TEXTFILE的文件句柄,<表示读文件openTEXTFILE,”<“,”a.txt”;while(<TEXTFILE>){print$_;}closeTEXTFILE;#openTEXTFILE1,”>”,”b.txt”;#>表示写文件,如果文件不存在,则会创建文件,输入文字覆盖原

    2022年10月18日
    3
  • 一小时搞定简单VBA编程 Excel宏编程快速上手

    一小时搞定简单VBA编程 Excel宏编程快速上手Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。1.ExcelVBA编辑界面(进入路径:sheet名称–>鼠标右键菜单–>查看代码)2.输入代码方法:在VBE编辑器的代码模块中输入VBA代码,通常有以下几种方法:■手工键盘输入;■使用宏录制器,即选择菜单“工具—…

    2022年6月6日
    46
  • 不同维度矩阵相乘[通俗易懂]

    不同维度矩阵相乘[通俗易懂]在深度学习中经常会遇到不同维度的矩阵相乘的情况,本文会通过一些例子来展示不同维度矩阵乘法的过程。总体原则:在高维矩阵中取与低维矩阵相同维度的分片来与低维矩阵相乘,结果再按分片时的顺序还原为高维矩阵。相乘结果的维度与原来的高维矩阵一致。二维乘一维三维乘一维三维乘二维…

    2025年6月18日
    5

发表回复

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

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