基于java mail实现简单的QQ邮箱发送邮件

刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习。

-----------------------------第一步 开启SMTP服务

在 QQ 邮箱里的 设置->账户里开启 SMTP 服务

完成验证

获取授权码(后面代码实现时使用)

-----------------------------第二步 环境配置

即下载第三方库

https://github.com/javaee/javamail/releases

-----------------------------第三步 代码实现

package com.core;

import java.security.GeneralSecurityException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
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 com.sun.mail.util.MailSSLSocketFactory;

public class MailTool {

    public static void main(String[] args) throws MessagingException, GeneralSecurityException {

        Properties props = new Properties();

        // 开启debug调试
        props.setProperty("mail.debug", "true");
        // 发送服务器需要身份验证
        props.setProperty("mail.smtp.auth", "true");
        // 设置邮件服务器主机名
        props.setProperty("mail.host", "smtp.qq.com");
        // 发送邮件协议名称
        props.setProperty("mail.transport.protocol", "smtp");

        // 开启SSL加密,否则会失败
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.socketFactory", sf);

        // 创建session
        Session session = Session.getInstance(props);

        // 创建邮件
        Message msg = new MimeMessage(session);
        // 设置标题
        msg.setSubject("测试邮件");
        // 编辑内容
        StringBuilder builder = new StringBuilder();
        builder.append("这是一封java mail测试邮件\n");
        builder.append("这是第二行");
        builder.append("\n时间 " + getStringDate());
        // 设置内容
        msg.setText(builder.toString());
        // 发送的邮箱地址
        msg.setFrom(new InternetAddress("自己的邮箱@qq.com"));
        // 通过session得到transport对象
        Transport transport = session.getTransport();
        // 连接邮件服务器:邮箱类型,帐号,授权码代替密码(更安全)
        transport.connect("smtp.qq.com", "自己的邮箱@qq.com", "授权码");
        // 发送邮件
        transport.sendMessage(msg, new Address[] { new InternetAddress("目标邮箱@qq.com") });
        transport.close();
    }

    /**
     * 获取当前时间
     * @return String
     */
    public static String getStringDate() {
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(currentTime);
        return dateString;
    }

}

-----------------------------第四步 效果展示

-----------------------------第五步 推荐

JAVA发送邮件最全示例

Java基于JavaMail实现向QQ邮箱发送邮件

时间: 2024-10-11 15:44:47

基于java mail实现简单的QQ邮箱发送邮件的相关文章

基于java实现的简单网页日历功能,有兴趣得可以把它转换到前端实现

之前做项目的时候,因为要用到不同日期显示不同的内容,就自己做了一个日期的显示和选择功能,今天抽空把以前的代码理了一下,顺便就把之前做的日期功能给拿出来回顾一下,大家可以提点意见,帮忙完善下设计.先上一张完成后的显示效果,本人是后端程序员,对于前端的一些效果不是很熟悉,画面不好请见谅.. 下面切入正题: 我设计的日历表是11*3的显示,加上上一个月和下一个月的选项,对于大月的月份刚好足够,但小月和二月就会有空格.为了方便我在页面上展现日历,我将上一月.下一月.空字符和日期一起封装在了list集合中

杂项之使用qq邮箱发送邮件

杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏效了...于是上网查了查,QQ对这方面做了一些限制,必须使用授权码才能登陆邮箱.官方链接在这:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256按照上面的官方文档配置好之后就可以使用QQ邮箱发

SpringBoot使用qq邮箱发送邮件

最近公司要做一个邮箱注册和重置密码的功能,因为之前就做过,但是不是Springboot项目,所以相对来说还是比较容易的,在这里记录一下. 一.引用Maven依赖 这里使用spring自带的邮件jar包 <!-- 邮件服务 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId&g

qq邮箱发送邮件封装

使用qq发送邮件 # coding=utf8 """ qq邮箱发送邮件 """ import sys reload(sys) sys.setdefaultencoding('utf8') import smtplib from email.mime.text import MIMEText class QQMailClient(): """使用qq邮箱发送邮件""" def __init

java基于javaMail实现向QQ邮箱发送邮件

一.首先开启SMTP服务        在 QQ 邮箱里的      设置->账户->开启 SMTP 服务           注意:开启完之后,QQ 邮箱会生成一个授权码,在代码里连接邮箱使用这个授权码而不是原始的邮箱密码,这样可以避免使用明文密码 二.设置spring配置文件 <?xml version="1.0" encoding="UTF-8"?>    <beans xmlns="http://www.springf

Java发送带附件的QQ邮箱

由于腾讯公司给QQ邮箱增加了一个授权码的密码保护,导致之前网上很多代码都不能用,于是就自己敲了一份demo. 注意在密码那里可能需要授权码,具体设置:http://service.mail.qq.com/cgi-bin/help?id=28 jar:javax.mail.jar 1 package xhw; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 im

关于JavaMail实现QQ邮箱发送邮件的简单实现1

一 确认QQ是否开启了POP3/SMPT协议 1.登陆QQ,打开QQ邮箱,点击"设置" 2.点击"账户",拉到下面"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务" 3.点击"开启",会看见几种验证方式,选择任意一种觉得方便的方式 4.在验证完之后会得到一个授权码,这个授权码先拷贝下来,等一下会作为系统邮箱的密码,要是授权码忘记了也没有关系,可以再重新生成 二 测试代码 1.在成功开启QQ的P

QQ邮箱发送邮件,出现mail from address must be same as authorization user错误

之前做的一个系统,有个发送邮件的功能,一直能正常使用,今天同事说QQ邮箱发送不了. 立马着手调试,发现服务器一直出现“mail from address must be same as authorization user”的错误,网上很多人说是“POP3/SMTP服务”没有开启,登录邮箱查看,发现该服务是开启的. 百思不得其解时,另一个同事说他用另一个QQ邮箱测试,邮件能正常发送,立即进入邮箱对比,发现他的QQ邮箱设置了“独立密码”,联想到抛出的错误提示,顿时大悟,设置独立密码,程序发送邮件时

JAVA 使用qq邮箱发送邮件

引入一个架包: 代码如下: private static final String QQ_EMAIL_HOST="smtp.qq.com";//qq SMTP服务器 地址 private static final String QQ_EMAIL_PORT="587";//qq SMTP服务器 端口(465这个端口有问题) private static final String QQ_EMAIL_FROM="[email protected]";/