国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

阿里云ECS服務(wù)器無(wú)法發(fā)送郵件問(wèn)題解決方案

這篇具有很好參考價(jià)值的文章主要介紹了阿里云ECS服務(wù)器無(wú)法發(fā)送郵件問(wèn)題解決方案。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

這篇文章分享一下自己把項(xiàng)目部署在阿里云ECS上之后,登錄郵件提醒時(shí)的郵件發(fā)送失敗問(wèn)題,無(wú)法連接發(fā)送郵箱的服務(wù)器。

博主使用的springboot提供的發(fā)送郵件服務(wù),如下所示,為了實(shí)現(xiàn)異步的效果,新開(kāi)了一個(gè)線程來(lái)發(fā)送郵件。

package cn.edu.sgu.www.mhxysy.service.system.impl;

import cn.edu.sgu.www.mhxysy.property.EmailProperties;
import cn.edu.sgu.www.mhxysy.property.SystemSettingsProperties;
import cn.edu.sgu.www.mhxysy.consts.RedisKeyPrefixConst;
import cn.edu.sgu.www.mhxysy.dto.system.UserLoginDTO;
import cn.edu.sgu.www.mhxysy.dto.system.UserUpdateDTO;
import cn.edu.sgu.www.mhxysy.entity.system.User;
import cn.edu.sgu.www.mhxysy.entity.system.UserLoginLog;
import cn.edu.sgu.www.mhxysy.exception.GlobalException;
import cn.edu.sgu.www.mhxysy.feign.FeignService;
import cn.edu.sgu.www.mhxysy.redis.RedisRepository;
import cn.edu.sgu.www.mhxysy.redis.StringRedisUtils;
import cn.edu.sgu.www.mhxysy.restful.ResponseCode;
import cn.edu.sgu.www.mhxysy.service.system.UserService;
import cn.edu.sgu.www.mhxysy.util.IpUtils;
import cn.edu.sgu.www.mhxysy.util.StringUtils;
import cn.edu.sgu.www.mhxysy.util.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @author heyunlin
 * @version 1.0
 */
@Slf4j
@Service
public class UserServiceImpl implements UserService {

	private final FeignService feignService;
	private final JavaMailSender javaMailSender;
	private final EmailProperties emailProperties;
	private final RedisRepository redisRepository;
	private final StringRedisUtils stringRedisUtils;
	private final SystemSettingsProperties systemSettingsProperties;

	@Autowired
	public UserServiceImpl(
			FeignService feignService,
			JavaMailSender javaMailSender,
			EmailProperties emailProperties,
			RedisRepository redisRepository,
			StringRedisUtils stringRedisUtils,
			SystemSettingsProperties systemSettingsProperties) {
		this.feignService = feignService;
		this.javaMailSender = javaMailSender;
		this.emailProperties = emailProperties;
		this.redisRepository = redisRepository;
		this.stringRedisUtils = stringRedisUtils;
		this.systemSettingsProperties = systemSettingsProperties;
	}

	@Override
	public void logout() {
		// 刪除角色的權(quán)限
		redisRepository.delete(UserUtils.getLoginUsername());

		// 注銷(xiāo)
		UserUtils.getSubject().logout();
	}

	@Override
	public void login(UserLoginDTO loginDTO) {
		// 一、驗(yàn)證碼判斷
		// 得到用戶輸入的驗(yàn)證碼
		String code = loginDTO.getCode();

		// 獲取正確的驗(yàn)證碼
		String uuid = loginDTO.getUuid();
		String key = RedisKeyPrefixConst.PREFIX_CAPTCHA + uuid;
		String realCode = stringRedisUtils.get(key);

		// 得到的驗(yàn)證碼為空,則獲取驗(yàn)證碼到登錄之間的時(shí)間已經(jīng)過(guò)了3分鐘,驗(yàn)證碼過(guò)期已經(jīng)被刪除
		if (realCode == null) {
			throw new GlobalException(ResponseCode.BAD_REQUEST, "驗(yàn)證碼已失效,請(qǐng)刷新頁(yè)面重新獲取~");
		}
		// 驗(yàn)證碼校驗(yàn)
		if (!code.equalsIgnoreCase(realCode)) {
			throw new GlobalException(ResponseCode.BAD_REQUEST, "驗(yàn)證碼錯(cuò)誤~");
		}

		// 二、登錄流程
		// 得到用戶名
		String username = loginDTO.getUsername();
		log.debug("用戶{}正在登錄...", username);

		// 查詢用戶信息,如果用戶被鎖定,提前退出
		User user = feignService.selectByUsername(username);

		if (user != null) {
			if (user.getEnable()) {
				// 1、shiro登錄認(rèn)證
				UsernamePasswordToken token = new UsernamePasswordToken(username, loginDTO.getPassword());
				Subject subject = UserUtils.getSubject();

				subject.login(token);
				// 設(shè)置session失效時(shí)間:永不超時(shí)
				subject.getSession().setTimeout(-1001);

				// 2、修改管理員上一次登錄時(shí)間
				User usr = new User();

				usr.setId(user.getId());
				usr.setLastLoginTime(LocalDateTime.now());

				feignService.updateById(usr);

				// 3、郵件通知
				if (emailProperties.isEnable()) {
					new Thread(() -> {
						// 定義日期格式
						DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");

						MimeMessage message = javaMailSender.createMimeMessage();
						MimeMessageHelper helper = new MimeMessageHelper(message);

						try {
							String text = "您的賬號(hào)" + username + "在廣州登錄了。" +
									"[" + LocalDateTime.now().format(formatter) + "]";

							helper.setFrom(emailProperties.getFrom());
							helper.setTo(emailProperties.getTo());
							helper.setText(text);

							javaMailSender.send(message);
						} catch (MessagingException e) {
							e.printStackTrace();
						}
					}).start();
				}

				// 4、如果開(kāi)啟了系統(tǒng)日志,添加管理員登錄歷史
				if (systemSettingsProperties.isLoginLog()) {
					UserLoginLog loginLog = new UserLoginLog();

					loginLog.setId(StringUtils.uuid());
					loginLog.setUserId(user.getId());
					loginLog.setLoginTime(LocalDateTime.now());
					loginLog.setLoginIp(IpUtils.getLocalHostAddress());
					loginLog.setLoginHostName(IpUtils.getLocalHostName());

					feignService.saveLoginLog(loginLog);
				}

				// 5、從redis中刪除用戶權(quán)限
				redisRepository.delete(username);

				// 6、查詢用戶的權(quán)限信息,并保存到redis
				redisRepository.save(username);
			} else {
				throw new GlobalException(ResponseCode.FORBIDDEN, "賬號(hào)已被鎖定,禁止登錄!");
			}
		} else {
			throw new GlobalException(ResponseCode.NOT_FOUND, "用戶名不存在~");
		}
	}

	@Override
	public void updatePass(UserUpdateDTO userUpdateDTO) {
		feignService.updatePass(userUpdateDTO);
	}

}

過(guò)了一段時(shí)間之后,后臺(tái)打印出了連接郵箱服務(wù)器超時(shí)的日志。?

Exception in thread "Thread-25" org.springframework.mail.MailSendException: Mail server connection failed; nested exception is com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.163.com, 25; timeout -1;

  nested exception is:

	java.net.ConnectException: Connection timed out (Connection timed out). Failed messages: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.163.com, 25; timeout -1;

  nested exception is:

	java.net.ConnectException: Connection timed out (Connection timed out); message exception details (1) are:

Failed message 1:

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.163.com, 25; timeout -1;

  nested exception is:

	java.net.ConnectException: Connection timed out (Connection timed out)

	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2210)

	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722)

	at javax.mail.Service.connect(Service.java:342)

	at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:518)

	at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:437)

	at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:361)

	at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:356)

	at cn.edu.sgu.www.mhxysy.service.system.impl.UserServiceImpl.lambda$login$0(UserServiceImpl.java:135)

	at java.lang.Thread.run(Thread.java:745)

Caused by: java.net.ConnectException: Connection timed out (Connection timed out)

	at java.net.PlainSocketImpl.socketConnect(Native Method)

	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

	at java.net.Socket.connect(Socket.java:589)

	at java.net.Socket.connect(Socket.java:538)

	at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:335)

	at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:214)

	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160)

	... 8 more

原因是:Couldn't connect to host, port: smtp.163.com, 25

但是通過(guò)終端連接smtp.163.com是成功的

ping smtp.163.com

阿里云ECS服務(wù)器無(wú)法發(fā)送郵件問(wèn)題解決方案,linux上部署項(xiàng)目運(yùn)行環(huán)境,開(kāi)發(fā)中遇到的問(wèn)題,阿里云,服務(wù)器,云計(jì)算

但是嘗試訪問(wèn)25端口,卻無(wú)響應(yīng)

telnet smtp.163.com 25

阿里云ECS服務(wù)器無(wú)法發(fā)送郵件問(wèn)題解決方案,linux上部署項(xiàng)目運(yùn)行環(huán)境,開(kāi)發(fā)中遇到的問(wèn)題,阿里云,服務(wù)器,云計(jì)算

于是在網(wǎng)上查找了一些解決方案,最后采用了通過(guò)ssl連接的方式,在原來(lái)的郵件設(shè)置中加入以下設(shè)置

spring:
  mail:
    port: 25
    host: smtp.163.com
    default-encoding: UTF-8
    username: xxxxx@163.com
    password: xxxxxxxxxxxxx

    # 以下是新增的設(shè)置
    properties:
      mail:
        debug: true
        smtp:
          auth: true
          ssl:
            trust: smtp.163.com
          starttls:
            enable: true
            required: true
          socketFactory:
            port: 465
            class: javax.net.ssl.SSLSocketFactory

最后重啟服務(wù),登陸的時(shí)候成功發(fā)出了郵件。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-729223.html

到了這里,關(guān)于阿里云ECS服務(wù)器無(wú)法發(fā)送郵件問(wèn)題解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 阿里云服務(wù)器ECS云盤(pán)擴(kuò)容

    阿里云服務(wù)器ECS云盤(pán)擴(kuò)容

    對(duì)于云服務(wù)器,相信大多數(shù)開(kāi)發(fā)的鐵子們都玩過(guò),但是云盤(pán)爆滿的情況,對(duì)于新手或者沒(méi)有自己運(yùn)營(yíng)業(yè)務(wù)的鐵子們,平臺(tái)給的初始容量也不算小,所以這種情況碰到的概率還是比較小。由于我的服務(wù)器應(yīng)用的復(fù)雜度隨著業(yè)務(wù)的發(fā)展逐漸增加,今天磁盤(pán)滿了,導(dǎo)致幾個(gè)服務(wù)直接

    2024年02月06日
    瀏覽(30)
  • 阿里云服務(wù)器ECS有什么優(yōu)勢(shì)?

    1.穩(wěn)定 單實(shí)例可用性達(dá) 99.975%,多可用區(qū)多實(shí)例可用性達(dá) 99.995%,云盤(pán)可靠性達(dá)9個(gè)9,可實(shí)現(xiàn)宕機(jī)自動(dòng)遷移、快照備份 2.彈性 支持分鐘級(jí)別創(chuàng)建千臺(tái)實(shí)例,多種彈性付費(fèi)選擇更貼合業(yè)務(wù)現(xiàn)狀,同時(shí)帶來(lái)彈性的擴(kuò)容能力,實(shí)例與帶寬均可隨時(shí)升降配,云盤(pán)可擴(kuò)容 3.安全 提供DDoS防

    2024年02月11日
    瀏覽(26)
  • 阿里云服務(wù)器ECS可以做什么?

    阿里云服務(wù)器ECS是一種安全可靠、彈性可伸縮的云計(jì)算服務(wù),具有廣泛的應(yīng)用場(chǎng)景,既可以作為Web服務(wù)器或者應(yīng)用服務(wù)器單獨(dú)使用,又可以與其他阿里云服務(wù)集成提供豐富的解決方案。阿里云服務(wù)器ECS的應(yīng)用場(chǎng)景有哪些呢? 網(wǎng)站應(yīng)用 網(wǎng)站初始階段訪問(wèn)量小,只需要一臺(tái)低配

    2024年02月11日
    瀏覽(27)
  • 阿里云輕量應(yīng)用服務(wù)器和ECS云服務(wù)器區(qū)別(官方文檔)

    阿里云輕量應(yīng)用服務(wù)器和ECS云服務(wù)器有啥區(qū)別?輕量應(yīng)用服務(wù)器是輕量級(jí)服務(wù)器,輕量適合個(gè)人開(kāi)發(fā)者或中小企業(yè)使用,清理使用簡(jiǎn)單、可視化運(yùn)維更容易上手;ECS云服務(wù)器專業(yè)級(jí)服務(wù)器,適合企業(yè)級(jí)應(yīng)用,通用型、計(jì)算型、大數(shù)據(jù)型、彈性裸金屬服務(wù)器、GPU/FPGA/NPU異構(gòu)計(jì)算

    2024年02月21日
    瀏覽(28)
  • 公有云——阿里云ECS服務(wù)器(IaaS)

    公有云——阿里云ECS服務(wù)器(IaaS)

    作者簡(jiǎn)介:一名云計(jì)算網(wǎng)絡(luò)運(yùn)維人員、每天分享網(wǎng)絡(luò)與運(yùn)維的技術(shù)與干貨。? ?座右銘:低頭趕路,敬事如儀 個(gè)人主頁(yè):網(wǎng)絡(luò)豆的主頁(yè)?????? 目錄 ?前言 一.了解云服務(wù)器的基礎(chǔ)概念 1.云服務(wù)器的基礎(chǔ)概念(云服務(wù)器選擇) 2.云上概念(存儲(chǔ)) (1)兩者區(qū)別 ?3.云上概

    2024年02月05日
    瀏覽(50)
  • 阿里云產(chǎn)品試用系列-云服務(wù)器 ECS

    阿里云產(chǎn)品試用系列-云服務(wù)器 ECS

    阿里云為個(gè)人開(kāi)發(fā)者或者企業(yè)用戶提供云產(chǎn)品的免費(fèi)試用,本文主要描述ECS云服務(wù)器試用體驗(yàn)。 如上所示,在阿里云官方網(wǎng)站中,可使用云服務(wù)器ECS構(gòu)建應(yīng)用服務(wù)。 如上所示,在阿里云控制臺(tái)中,可以顯示成功定制免費(fèi)使用阿里云ECS云服務(wù)器。 如上所示,使用阿里云提供登

    2024年02月08日
    瀏覽(23)
  • 阿里云服務(wù)器ECS有哪些功能特性?

    本文介紹云服務(wù)器ECS的功能特性,幫助您更好地了解和使用云服務(wù)器ECS。 實(shí)例是云上的虛擬計(jì)算服務(wù)器,內(nèi)含vCPU、內(nèi)存、操作系統(tǒng)、網(wǎng)絡(luò)、磁盤(pán)等基礎(chǔ)組件。您可以使用阿里云提供的控制臺(tái)、API等管理工具創(chuàng)建和管理ECS實(shí)例,像使用本地服務(wù)器一樣管理ECS實(shí)例的狀態(tài)、應(yīng)用

    2024年02月06日
    瀏覽(18)
  • 阿里云國(guó)際服務(wù)器ECS特性與優(yōu)勢(shì)

    阿里云國(guó)際服務(wù)器ECS特性與優(yōu)勢(shì)

    阿里云國(guó)際服務(wù)器 的 ECS 作為一種安全、可靠、靈活、可擴(kuò)展的云計(jì)算服務(wù),不僅可以減少運(yùn)行和維護(hù),而且可以提高運(yùn)行和維護(hù)效率,使用戶關(guān)注核心業(yè)務(wù)的創(chuàng)新。 阿里云國(guó)際服務(wù)器ECS優(yōu)勢(shì)一:產(chǎn)品豐富 阿里云國(guó)際云服務(wù)器 ECS 可以提供業(yè)界豐富的產(chǎn)品序列,且支持主流計(jì)

    2024年02月01日
    瀏覽(27)
  • 阿里云服務(wù)器的tcp端口無(wú)法訪問(wèn)(云服務(wù)廠家問(wèn)題?)

    阿里云服務(wù)器的tcp端口無(wú)法訪問(wèn)(云服務(wù)廠家問(wèn)題?)

    最近一臺(tái)阿里云服務(wù)器的一個(gè)端口61616無(wú)法訪問(wèn),在服務(wù)器內(nèi)用外網(wǎng)地ip發(fā)現(xiàn)無(wú)法訪問(wèn),用內(nèi)網(wǎng)ip訪問(wèn)是正常的,通過(guò)技術(shù)排查: 打開(kāi)商家官網(wǎng)的,查看該實(shí)例的【安全組策略】:是放行的沒(méi)變動(dòng),官網(wǎng)設(shè)置排除掉。 配置云服務(wù)器內(nèi)部防火墻,?云主機(jī)內(nèi)的防火墻雖然是 關(guān)閉

    2024年02月02日
    瀏覽(23)
  • 【服務(wù)器】搭建hMailServer 服務(wù)實(shí)現(xiàn)遠(yuǎn)程發(fā)送郵件

    【服務(wù)器】搭建hMailServer 服務(wù)實(shí)現(xiàn)遠(yuǎn)程發(fā)送郵件

    hMailServer 是一個(gè)郵件服務(wù)器,通過(guò)它我們可以搭建自己的郵件服務(wù),通過(guò)cpolar內(nèi)網(wǎng)映射工具即可實(shí)現(xiàn)遠(yuǎn)程發(fā)送郵件,不需要使用公網(wǎng)服務(wù)器,不需要域名,而且郵件賬號(hào)名稱可以自定義. 下面以windows 10系統(tǒng)為環(huán)境,介紹使用方法: 1. 安裝hMailServer 進(jìn)入官方下載:https://www.hmailserver.com/do

    2024年02月10日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包