Spring Boot Mail QQ企业邮箱无法连接解决方案

网友投稿 873 2023-04-05

Spring Boot Mail QQ企业邮箱无法连接解决方案

Spring Boot Mail QQ企业邮箱无法连接解决方案

这里记录一下QQ企业邮箱发邮件问题,因为之前遇到过一种情况是本地测试没问题,结果线上出现问题

Couldn't connect to host, port: smtp.qq.com, 25; timeout -1

要使用企业邮箱生成的授权密码.

这里只要是因为QQ邮箱默认端口是465,需要修改为SSL配置

java代码

package com.chenpeng.cpeducloud.service.impl;

import lombok.extern.slf4j.Slf4j;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.core.io.FileSystemResource;

import org.springframework.mail.SimpleMailMessage;

import org.springframework.mail.javamail.JavaMailSender;

import org.springframework.mail.javamail.MimeMessageHelper;

import org.springframework.messaging.MessagingException;

import org.springframework.stereotype.Service;

import com.chenpeng.cpeducloud.base.WebConstants;

import com.chenpeng.cpeducloud.service.MailService;

import com.chenpeng.cpeducloud.util.Constants;

import com.chenpeng.cpeducloud.util.DateUtils;

import com.chenpeng.cpeducloud.util.StringUtils;

import javax.mail.internet.MimeMessage;

import java.io.File;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

/**

/**auth : szy

*time : 2019-05-16

**/

@Service

@Slf4j

public class MailServiceImpl implements MailService {

@Autowired

private JavaMailSender mailSender;

@Value("${mail.formSender}")

private String sender;// 发送者

@Value("${mail.formMobile}")

private String formMobile;// 联系电话

/**

* 发送简单邮件(收件人,主题,内容)

*/

@Override

public void sendSimpleMail(String to, String subject, String content) {

SimpleMailMessage message = new SimpleMailMessage();

message.setFrom(sender);

message.setTo(to);

message.setSubject(subject);

message.setText(content);

try {

mailSender.send(message);

log.info("简单邮件发送成功!");

} catch (Exception e) {

log.info("发送简单邮件时发生异常!"+e);

}

}

/**

* 发送Html邮件(收件人,主题,内容)

*/

@Override

public void sendHtmlMail(StriUZaSHSCTgang to, String subject, String content) {

MimeMessage message = mailSender.createMimeMessage();

try {

MimeMessageHelper helper = null; //true表示需要创建一个multipart message

try {

helper = new MimeMessageHelper(message, true);

message.setFrom(sender);

helper.setTo(to);

helper.setSubject(subject);

helper.setText(content, true);

mailSender.send(message);

log.info("html邮件发送成功");

} catch (javax.mail.MessagingException e) {

e.printStackTrace();

}

} catch (MessagingException e) {

log.info("发送html邮件时发生异常!"+e);

}

}

/**

* 发送带附件的邮件

* @param to

* @param subject

* @param content

* @param filePath

*/

@Override

public void sendAttachmentsMail(String to, String subject, String content, String filePath){

MimeMessage message = mailSender.createMimeMessage();

try {

MimeMessageHelper helper = null;

try {

helper = new MimeMessageHelper(message, true);

message.setFrom(sender);

helper.setTo(to);

helper.setSubject(subject);

helper.setText(content, true);

FileSystemResource file = new FileSystemResource(new File(filePath));

String fileName = filePath.substring(filePath.lastIndexOf(File.separator));

helper.addAttachment(fileName, file);

//helper.addAttachment("test"+fileName, file);

mailSender.send(message);

log.info("带附件的邮件已经发送。");

} catch (javax.mail.MessagingException e) {

e.printStackTrace();

}

} catch (MessagingException e) {

log.info("发送带附件的邮件时发生异常!"+e);

}

}

/**

* 发送Html邮件(收件人,主题,内容),

* 带多附件

*/

@Override

public void sendHtmlMailAnUZaSHSCTgadAttachments(String[] to,String[] cc, String subject, String content, List files) {

MimeMessage message = mailSender.createMimeMessage();

try {

MimeMessageHelper helper = null; //true表示需要创建一个multipart message

try {

helper = new MimeMessageHelper(message, true);

message.setFrom(sender);

helper.setTo(to);

helper.setCc(cc);

helper.setSubject(subject);

helper.setText(content, true);

for (String filePath : files){

FileSystemResource file = new FileSystemResource(new File(filePath));

String fileName = filePath.substring(filePath.lastIndexOf(File.separator));

helper.addAttachment(fileName, file);

}

mailSender.send(message);

log.info("html邮件发送成功");

} catch (javax.mail.MessagingException e) {

e.printStackTrace();

}

} catch (MessagingException e) {

log.info("发送html邮件时发生异常!"+e);

}

}

}

邮箱配置

#UZaSHSCTga邮箱配置

mail:

host: smtp.exmail.qq.com

username: 11111@qq.com

password: 密钥不是密码

default-encoding: utf-8

port: 465

properties:

mail:

smtp:

auth: true

ssl:

enable: true

socketFactory:

class: com.sun.mail.util.MailSSLSocketFactory

fallback: false

starttls:

enable: true

required: true

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈Maven安装及环境配置出错的解决办法
下一篇:Maven插件的安装及使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~