java 给qq邮箱发邮件_Java使用QQ邮箱给其他邮箱发邮件

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png 个人微信小程序可以扫码体验

引入了2个jar包

javax.mail

javax.mail-api

1.5.5

com.sun.mail

javax.mail

1.5.4

获取QQ邮箱的授权码

0818b9ca8b590ca3270a3433284dd417.png

开启。验证一下。就会出现授权码。

QQSendMailService

package com.bdxc.plat.service.weixin;

import java.util.Properties;

import javax.mail.Address;

import javax.mail.Message;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import com.sun.mail.util.MailSSLSocketFactory;

/**

* 发送邮件的工具类QQ

* @author 宗潇帅

* @Title SendEmailService

* @时间 2017-1-5下午2:14:13

*/

public class QQSendEmailService {

/**

* 目前发送到163 qq个人邮箱可以,企业邮箱有问题

* @param subject 邮件主题

* @param text 邮件内容纯文本

* @param mails 邮件地址多个用逗号隔开

* @throws Exception

*/

public static void send_email(String subject,String text,String mails) throws Exception{

//用于读取配置文件

Properties props=new Properties();

//开启Debug调试

props.setProperty("mail.debug", "true");

//发送服务器需要身份验证

props.setProperty("mail.smtp.auth", "true");

//发送邮件服务器的主机名

props.setProperty("mail.smtp.host", "smtp.qq.com");

//端口号

props.setProperty("mail.smtp.port", "465");

//发送邮件协议

props.setProperty("mail.transport.protocol", "smtp");

//开启ssl加密(并不是所有的邮箱服务器都需要,但是qq邮箱服务器是必须的)

MailSSLSocketFactory msf= new MailSSLSocketFactory();

msf.setTrustAllHosts(true);

props.put("mail.smtp.ssl.enable", "true");

props.put("mail.smtp.ssl.socketFactory",msf);

//获取Session会话实例(javamail Session与HttpSession的区别是Javamail的Session只是配置信息的集合)

Session session=Session.getInstance(props,new javax.mail.Authenticator(){

protected PasswordAuthentication getPasswordAuthentication(){

//用户名密码验证(取得的授权吗)

return new PasswordAuthentication ("123456@qq.com","自己的授权码");

}

});

//抽象类MimeMessage为实现类 消息载体封装了邮件的所有消息

Message message=new MimeMessage(session);

//设置邮件主题

message.setSubject(subject);

//封装需要发送电子邮件的信息

message.setText(text);

//设置发件人地址

message.setFrom(new InternetAddress("123456@qq.com"));

//此类的功能是发送邮件 又会话获得实例

Transport transport=session.getTransport();

//开启连接

transport.connect();

//设置收件人地址邮件信息

String mailAddress[] = mails.split(",");

for (int i = 0; i < mailAddress.length; i++) {

transport.sendMessage(message,new Address[]{new InternetAddress(mailAddress[i])});

//邮件发送后关闭信息

transport.close();

}

}

}

发送的测试内容截图

0818b9ca8b590ca3270a3433284dd417.png

OK。就是这样的简单。返回错误的时候注意看端口号有写没。

props.setProperty("mail.smtp.port", "465");

使用 Java 发送邮件,需要使用 Java Mail API。以下是一个使用 QQ 邮箱发送邮件的示例代码: ```java import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; public class SendMail { public static void main(String[] args) { final String username = "your_qq_email@qq.com"; final String password = "your_qq_password"; Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "smtp.qq.com"); props.put("mail.smtp.port", "587"); Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress("your_qq_email@qq.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient_email@example.com")); message.setSubject("Testing Subject"); message.setText("Dear Mail Crawler," + "\n\n No spam to my email, please!"); Transport.send(message); System.out.println("Done"); } catch (MessagingException e) { throw new RuntimeException(e); } } } ``` 在代码中,需要将 `your_qq_email@qq.com` 和 `your_qq_password` 替换为你的 QQ 邮箱地址和授权码。授权码需要在 QQ 邮箱的设置中生成,具体操作可以参考 QQ 邮箱的帮助文档。另外,需要将 `recipient_email@example.com` 替换为收件人的邮箱地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值