当前位置:首页 > Java > 正文内容

Javamail简单使用案例

flowstone8年前 (2017-09-13)Java486

邮件开发环境搭建

邮件服务器

  • 易邮邮件服务器

  • 配置如下


  •  易邮邮件服务器

易邮邮件服务器配置

邮件客户端

  • Foxmail

  • 配置如下

  •  Foxmail配置

使用Javamail发送邮件

1、下载

  • javamail-samples.zip

  • javax.mail.jar

官网地址http://www.oracle.com/technetwork/java/javamail/index.html

2、使用javamail

发送到本地的邮件中

package org.xueyao.email;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailUtils {
    /**
     * 发送邮件
     * @param to   接收邮件的地址
     * @param subject  邮件主题
     * @param msgText   邮件内容
     */
    public static void send(String to, String subject, String msgText) {
        //发邮件的地址
        String from = "admin@flowstone.com"; 
        //邮件发送服务器地址
        String host = "localhost"; 
        //是否开启debug模式
        boolean debug = true; 
        // 设置发送邮件的配置信息
        Properties props = new Properties();
        props.put("mail.smtp.host", host);
        if (debug) {
            props.put("mail.debug", debug);
        }
        //邮件会话
        Session session = Session.getInstance(props, null);
        session.setDebug(debug);
        try {
            //创建邮件
            MimeMessage msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(from));
            InternetAddress[] address = { new InternetAddress(to) };
            msg.setRecipients(Message.RecipientType.TO, address);
            //设置主题
            msg.setSubject(subject);
            //设置发送时间
            msg.setSentDate(new Date());
            // If the desired charset is known, you can use
            // setText(text, charset)
            //设置邮件的内容
            msg.setText(msgText);
            //发送邮件
            Transport.send(msg);
        } catch (Exception mex) {
            mex.printStackTrace();
        }
    }
    public static void main(String[] args) {
        String to = "test02@flowstone.com";
        String subject = "如何学习?";
        String msgText = "解决学习困扰,就是天天晚上熬夜学习";
        MailUtils.send(to, subject, msgText);

    }

}


效果图

效果图

通过QQ邮箱发送

package org.xueyao.email;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailQQUtils {
    /**
     * 发送邮件
     * @param to   接收邮件的地址
     * @param subject  邮件主题
     * @param msgText   邮件内容
     */
    public static void send(String to, String subject, String msgText) {
        //发邮件的地址
        String from = "931330220@qq.com"; 
        String password = "授权码";
        //邮件发送服务器地址
        String host = "smtp.qq.com"; 
        //是否开启debug模式
        boolean debug = true; 
        // 设置发送邮件的配置信息
        Properties props = new Properties();
        props.put("mail.smtp.host", host);

        if (debug) {
            props.put("mail.debug", debug);
        }
        //添加auth认证
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "587");

        //邮件会话
        Session session = Session.getInstance(props, null);
        session.setDebug(debug);
        try {
            //创建邮件
            MimeMessage msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(from));
            InternetAddress[] address = { new InternetAddress(to) };
            msg.setRecipients(Message.RecipientType.TO, address);
            //设置主题
            msg.setSubject(subject);
            //设置发送时间
            msg.setSentDate(new Date());
            //设置邮件的内容
            msg.setText(msgText);
            //发送邮件
            Transport.send(msg,from,password);
        } catch (Exception mex) {
            mex.printStackTrace();
        }
    }
    public static void main(String[] args) {
        String to = "收件邮箱";
        String subject = "如何学习?";
        String msgText = "解决学习困扰,就是天天晚上熬夜学习";
        MailQQUtils.send(to, subject, msgText);

    }
}


效果图


扫描二维码推送至手机访问。

版权声明:本文由薛尧的博客发布,如需转载请注明出处。

本文链接:https://flowstone.sourceforge.io/?id=15

分享给朋友:

相关文章

Java Random入门

什么是Random?当用户要产生一个随机数,java本身提供了丰富的Random类。用户可以根据需求创建Random对象,根据Random类下的方法创建特殊的随机数。如何创建Random?首先用户要创建一个Random对象Random&nb...

Lombok的使用

近期在众多微信公众号中,都看到了许多大牛,写了Lombok的文章,我看了一下,基本上就围绕着如何减少代码来做说明,我来总结一下。公司现在的项目没有使用Lombok,一些实体类都是我们用IDEA提供的快捷方式生成的,后来,公司新来了一个大牛,...

Spring自定义注解详解

下面是RequestBody注解源码@Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented public @interfa...

Java内存缓存-通过Map定制简单缓存

缓存在程序中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快。通过缓存,可以高效地重用之前检索或计算的数据。为什么要用缓存场景在Java应用中,对于访问频率高,更新...

Java多线程-程序运行堆栈分析

class文件内容class文件包含JAVA程序执行的字节码;数据严格按照格式紧凑排列在class文件中的二进制流,中间无任何分隔符;文件开头有一个0xcafebabe(16进制)特殊的一个标志。JVM运行时数据区线程独占:每个线程都会有它...

CPU缓存和内存屏障

CPU性能优化手段-缓存为了提高程序运行的性能,现代CPU在很多方面对程序进行了优化。例如:CPU高速缓存。尽可能地避免处理器访问主内存的时间开销,处理器大多会利用缓存(cache)以提高性能。多级缓存L1 Cache(一级缓存)是CPU第...