java使用javax.mail进行免费的邮件发送

1. 建议发送方使用阿里云邮箱https://mail.aliyun.com/,阿里云默认是开启个人邮箱pop3、smtp协议的,所以无需在阿里云邮箱里设置,pop3、smtp的密码默认邮箱登录密码,没有可以去申请一个。

如果要使用别的邮箱,可以自行查询对应邮箱怎么开启smtp协议。

2.pom.xml中引入javax.mail的jar包,这里使用1.4.7版本。

        <!-- javax mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

3.新建MailSend类:

package com.jarfk.util.email;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.Properties;

/**
 * Created by Administrator on 2017/9/29 0029.
 */
public class MailSend {
    private static final String EMAIL_OWNER_ADDR_HOST = "smtp.aliyun.com"; //smtp.163.com  smtp.aliyun.com  smtp.qq.com
    private static final String EMAIL_OWNER_ADDR = "[email protected]";
    private static final String EMAIL_OWNER_ADDR_PASS = "xxx";

    public static void sendMail(String title, String email, String content) throws MessagingException {
        Properties prop = new Properties();
        prop.put("mail.host", EMAIL_OWNER_ADDR_HOST);
        prop.put("mail.transport.protocol", "smtp");
        prop.put("mail.smtp.auth", "true");
        //如果不加下面的这行代码 windows下正常,linux环境下发送失败,解决:http://www.cnblogs.com/Harold-Hua/p/7029117.html
        prop.setProperty("mail.smtp.ssl.enable", "true");
        //使用java发送邮件5步骤
        //1.创建sesssion
        Session session = Session.getInstance(prop);
        //开启session的调试模式,可以查看当前邮件发送状态
        //session.setDebug(true);

        //2.通过session获取Transport对象(发送邮件的核心API)
        Transport ts = session.getTransport();
        //3.通过邮件用户名密码链接,阿里云默认是开启个人邮箱pop3、smtp协议的,所以无需在阿里云邮箱里设置
        ts.connect(EMAIL_OWNER_ADDR, EMAIL_OWNER_ADDR_PASS);

        //4.创建邮件
        //创建邮件对象
        MimeMessage mm = new MimeMessage(session);
        //设置发件人
        mm.setFrom(new InternetAddress(EMAIL_OWNER_ADDR));
        //设置收件人
        mm.setRecipient(Message.RecipientType.TO, new InternetAddress(email));
        //设置抄送人
        //mm.setRecipient(Message.RecipientType.CC, new InternetAddress("[email protected]"));

        //mm.setSubject("吸引力注册邮件");
        mm.setSubject(title);

        //mm.setContent("您的注册验证码为:<b style=\"color:blue;\">0123</b>", "text/html;charset=utf-8");
        mm.setContent(content, "text/html;charset=utf-8");

        // true表示开始附件模式 -----------------------------------------------------------------------
        /*MimeMessageHelper messageHelper = new MimeMessageHelper(mm, true, "utf-8");
        // 设置收件人,寄件人
        messageHelper.setTo(email);
        messageHelper.setFrom(EMAIL_OWNER_ADDR);
        messageHelper.setSubject(title);
        // true 表示启动HTML格式的邮件
        messageHelper.setText(content, true);

        FileSystemResource file1 = new FileSystemResource(new File("d:/rongke.log"));
        FileSystemResource file2 = new FileSystemResource(new File("d:/新建文本文档.txt"));
        // 添加2个附件
        messageHelper.addAttachment("rongke.log", file1);
        try {
            //附件名有中文可能出现乱码
            messageHelper.addAttachment(MimeUtility.encodeWord("新建文本文档.txt"), file2);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            throw new MessagingException();
        }*/
        //-------------------------------------------------------------------------------------------
        //5.发送电子邮件

        ts.sendMessage(mm, mm.getAllRecipients());
    }

    public static void main(String[] args) throws MessagingException {
        //sendMail("吸引力注册邮件", "[email protected]", "您的注册验证码为:<b style=\"color:blue;\">651899</b>");
        sendMail("吸引力", "[email protected]", "spring boot 邮件测试");
    }
}
时间: 2024-11-05 13:41:36

java使用javax.mail进行免费的邮件发送的相关文章

Java使用javax.mail.jar发送邮件并同意发送附件

因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一直都认为作为开发者,不怕在开发的过程中遇到多少难题,而是有没有去解决它的勇气和决心,这里多学习就成为了关键,成为了一个程序员发展的重中之重!好啦.闲话就讲到这里.来点实际的. 当一个开发者工作到一定程度后,面向对象的思维就会一直在他的老子里环绕.所以我们先把邮件的常量类.实体类以及工具类等等先该封装

Java使用javax.mail.jar发送邮件

由于Java在开发网页上占有绝大优势,所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必然,网络安全一再安全我们需要把账号的安全级别提到更高!因此这些对于开发人员也就成了必须掌握的技能!我一直都觉得作为开发人员,不怕在开发的过程中遇到多少难题,而是有没有去解决它的勇气和决心,这里多学习就成为了关键,成为了一个程序猿发展的重中之重!好啦,闲话就说到这里,来点实际的! 当一个开发人员工作到一定程度后,面向对象的思维就会一直在他的老子里围绕!所以我们先把邮件的常量类.实体类以及工具类等等先

免费超大量邮件发送服务Amazon SES和Mailgun提供SMTP和API支持

一般来说网站注册.论坛消息.新闻推送.广告宣传等都会有发送邮件服务,大量的邮件发送服务如果用PHP来发送,一是会消耗主机资源,二是容易被各大邮箱判定为垃圾邮件而被拒收.用第三方的邮局服务发送邮件,可以保证邮件到达率,同时适合超大量的邮件发送服务. 与部落之前介绍的腾讯企业邮箱.新浪企业邮箱等发送邮件服务不同,Amazon SES和Mailgun是专业级别的邮件发送服务,能够满足企业或者个人每天超大量邮件发送服务,并且保证邮件足够的到达率,如果你愿意付费的话,可以极低价格发送每天上万封的邮件. A

Java经验杂谈(1.记PostFix邮件发送性能与有效发送问题)

业务需求: 需要定期给注册会员发送广告,问卷等邮件,每天需要完成百万级的邮件发送. 服务器:若干台postfix服务器 遇到问题:对于每天百万级的邮件发送任务,postfix服务器很容易完成,Java客户端包含发送时的业务逻辑处理时间,多起几个线程也很容易做到.但是,如果发送速度过快,会被邮件服务商列入黑名单而拒收邮件,而每个邮件服务商对接收邮件的速度要求又不一样. 解决方法:这样,需要针对每个邮件批量发送任务,按照每个邮件服务商能接收的速度来发送邮件.比如,163每秒3封,sina每秒4封等.

java mail邮件发送(带附件) 支持SSL

java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.util.Vector; public class MailSenderInfo { // 发送邮件的server的IP和端口 private String mailServerHost; private String mailServerPort = "25"; // 邮件发送者的地址 pr

java mail邮件发送(带附件)

java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.util.Vector; public class MailSenderInfo { // 发送邮件的服务器的IP和端口 private String mailServerHost; private String mailServerPort = "25"; // 邮件发送者的地址 priva

Java Mail邮件发送的简单实现

1.什么是java mail JAVA MAIL是利用现有的邮件账户发送邮件的工具,通过JAVA Mail的操控,让程序自动的使用设置的邮箱发送邮件. 这一机制被广泛的用在注册激活和垃圾邮件的发送等方面. 2.邮件发送的大致过程 1.构建一个继承自javax.mail.Authenticator的具体类,并重写里面的getPasswordAuthentication()方法.此类是用作登录校验的,以确保你对该邮箱有发送邮件的权利. 2.构建一个properties文件,该文件中存放SMTP服务器

Java邮件发送与屏幕截屏

前几天七夕情人节孤独寂寞的程序猿闲来没事,花了一两个小时写了个小Demo主要实现Java的Mail发送功能和桌面截屏功能. 首先让我们先看看Java sendMail邮件发送和桌面屏幕截屏功能是怎么实现的基础知识. 一.Java  SendMail邮件发送 首先让我们来看看邮件发送的原理图: JavaMail 是一套sun 提供开发邮件收发程序API,JavaMail编写程序就是邮件客户端程序(和outlook.foxmail功能类似) * JavaMail开发需要类库 javamail API

ThinkPHP邮件发送S(Smtp + Mail + phpmailer)

三种邮件发送介绍:(Smtp,Mail以及phpmailer)ThinkPhp 框架下开发. 邮件发送配置先前准备(用该账号做测试用):(这里用新浪邮箱服务器)将自己的新浪邮箱开通 POP3/SMTP服务: 新浪邮箱中  :设置->账户下面的 POP3/SMTP服务 选择开通(然后一步一步完成开通). 客户端html代码: 1 <body> 2 <!--<h1>发送信息测试</h1>--> 3 <div>请输入发送地址(1):<inp