我是靠谱客的博主 清脆龙猫,最近开发中收集的这篇文章主要介绍java发送qq邮箱不成功_springboot通过qq邮箱发邮件失败??,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题主贴出的配置和代码有两个问题:

1、端口号。根据QQ邮箱的官方说明,端口号可以是465或587,但我测试的时候465是超时的,587就正常。

2、运行贴出的代码尝试发邮件,会报错,报错信息

java.net.ConnectException: Connection refused: connect. Failed messages: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;

根据这个信息,host和port这两个参数都没有作为参数传入,运行的时候压根就没有连去QQ邮箱的服务器。

因为弄了一轮都发不出,于是归零重新找资料实现。

下面是我的代码,参考的是spring的官方文档。

配置文件沿用题主的。用了springboot,版本号2.2.3.RELEASE。

package zsh.sf_answer1.mail;

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

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

import org.springframework.context.ApplicationContext;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.PropertySource;

import org.springframework.mail.javamail.JavaMailSenderImpl;

import org.springframework.mail.javamail.MimeMessageHelper;

import org.springframework.stereotype.Component;

import javax.mail.MessagingException;

import javax.mail.internet.MimeMessage;

import java.util.Date;

@Configuration

@PropertySource("classpath:application.properties")

@Component("mailRunner")

public class MailRunner {

public void func1(String sendTo) throws MessagingException {

JavaMailSenderImpl sender = new JavaMailSenderImpl();

sender.setHost(host);//发件邮箱

sender.setUsername(username);//*1

sender.setPassword(password);

sender.setPort(Integer.parseInt(port));

MimeMessage message = sender.createMimeMessage();

MimeMessageHelper helper = new MimeMessageHelper(message);

helper.setFrom(username);//与*1要一致,不配置会报错

helper.setSubject("TestMail Type I");

helper.setTo(sendTo);//收件邮箱

helper.setText("Thank you for ordering!");//邮件内容

helper.setSentDate(new Date());

sender.send(message);

}

public static void main(String[] args) {

ApplicationContext ac = new AnnotationConfigApplicationContext(MailRunner.class);

MailRunner mr = ac.getBean(MailRunner.class);

try{

mr.func1("xxx@163.com");

}catch(Exception e) {

e.printStackTrace();

}

}

String host;

String username;

String password;

String port;

@Autowired

public void setUsername(@Value("${spring.mail.username}") String username) {

this.username = username;

}

@Autowired

public void setPassword(@Value("${spring.mail.password}") String password) {

this.password = password;

}

@Autowired

public void setPort(@Value("${spring.mail.port}") String port) {

this.port = port;

}

@Autowired

public void setHost(@Value("${spring.mail.host}") String host) {

this.host = host;

}

}

最后

以上就是清脆龙猫为你收集整理的java发送qq邮箱不成功_springboot通过qq邮箱发邮件失败??的全部内容,希望文章能够帮你解决java发送qq邮箱不成功_springboot通过qq邮箱发邮件失败??所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部