一,2016年9月后购买的阿里云ecs不再支持通过25端口发送邮件

官方的建议是使用465端口

465端口(SMTPS):

465端口是为SMTPS(SMTP-over-SSL)协议服务开放的

它是SMTP协议基于SSL安全协议之上的一种变种协议,

它有SSL安全协议的非对称加密的高度安全可靠性,可以保证邮件的安全性

测试连接到25端口:

[root@aliecs ~]# telnet smtp.163.com 25
Trying 220.181.12.13...

没有响应

测试连接到465:

[root@aliecs ~]# telnet smtp.163.com 465
Trying 220.181.12.13...
Connected to smtp.163.com.
Escape character is '^]'.
^]
telnet> quit
Connection closed.

没问题,可以连接

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,在163邮箱得到授权码:

我们在这里以常用的163邮箱为例,先获取授权码。

1, 什么是授权码?

当我们从非网易官方的客户端连接smtp服务时,

需要使用授权码作为密码,而不是到邮箱的登录密码。

这个授权码需要单独获取一次

即:我们在linux上使用163个人邮箱发邮件时,

需要使用的密码不是邮箱登录密码,而是授权码

2,登录到163邮箱->设置->POP3/SMTP/IMAP->

看截图

在pop3/smtp服务后点“开启”按钮

网易会提示绑定手机号,

看截图:

手机号绑定成功后,再次点击开启

网易会提示要求使用绑定的手机号发送一条短信到指定号码,

发送成功后会显示授权码:

看截图:

注意这个授权密码只显示一次,一定要保存好

三,配置mailx发邮件

[root@aliecs ~]# vi /etc/mail.rc

在文件末尾增加以下内容

#by lhd
set from=cbnabcd@163.com
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=cbnabcd@163.com
set smtp-auth-password=SHOUQUANMA
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs

四,生成供发邮件用的证书:

1,创建目录

[root@aliecs ~]# mkdir /root/.certs

2,生成相应的证书:

#s_client:是一个SSL/TLS客户端程序,它能与s_server通信,也能与其他使用ssl协议的其他服务程序进行通信

#sed:打印证书开头和结尾中间的内容

#>:保存到.certs/163.crt这个证书文件中

[root@aliecs ~]# echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt

五,测试发送邮件

#-s:指定subject标题

#-v:verbose模式,在用户终端上显示信息传递的细节

#<a.txt:  传递邮件内容,也可以手动书写按ctrl+d发送

[root@aliecs ~]# mail -v -s "subject_title" 371125307@qq.com <a.txt
Resolving host smtp.163.com . . . done.
Connecting to 220.181.12.18:465 . . . connected.
220 163.com Anti-spam GT for Coremail System (163com[20141201])
>>> EHLO aliecs
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFKVMJAUCa0xDrUUUUj
250-STARTTLS
250 8BITMIME
>>> AUTH LOGIN
334 dXNlcm5hbWU6
>>> Y2Jud2Vla2hiQDE2My5jb20=
334 UGFzc3dvcmQ6
>>> VFZQUERTQ0xVVUlWVUxPTA==
235 Authentication successful
>>> MAIL FROM:<cbnabcd@163.com>
250 Mail OK
>>> RCPT TO:<371125307@qq.com>
250 Mail OK
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Mail OK queued as smtp14,EsCowAD3_aVX18ReQDkBCg--.14523S2 1589958489
>>> QUIT
221 Bye

六,查看mailx的版本:

[root@aliecs ~]# mail -V
12.5 7/5/10

linux(centos8):阿里云ecs配置smtps发邮件(解决不能通过25端口发邮件问题)的更多相关文章

  1. 阿里云ECS配置iptables

    在阿里云ECS安装flannel.docker.kubernetes后,在多个node运行docker run -it bash,然后ping互相的ip,发现docker容器间网络没通,发现宿主机的i ...

  2. Chromebook 阿里云ECS 配置 jupyter Notebook

    前言 新购入一台Chromebook Pixel ,为方便机器学习编程,用学生版的阿里云ECS搭建了jupyter Notebook 为减少下次踩坑,参考链接记录如下: 参考链接 阿里云使用笔记(一) ...

  3. 【Linux】阿里云ECS提示RHSA-2017:3263: curl security update(CentOS 7 更新 curl 为最新版本)

    1.前言 由于 CentOS 7 内置的 curl 和 libcurl 源为较旧的 7.29.0,不支持一些新特性且有安全性问题,所以需要更新一下. 2.开始 1.更新ca-bundle · 首先备份 ...

  4. 阿里云服务器 通过JavaMail发送邮箱STMP问题( 25端口被禁用 使用SSL协议465端口 )

    我们传统使用的比较简单的是 STMP 25端口收发邮件 今天发现刚购买的阿里云服务器不能作为客户端通过STMP 25端口发送邮件 开始在网上有说发现是JDK1.8的原因,然后自己也把JDK1.8换到了 ...

  5. [linux]为阿里云ECS(CentOS7)配置IPv6地址

    环境为:ECS"经典网络"类型 步骤: 1. 编辑 /etc/sysctl.conf 文件,将其中三条禁用IPv6的设置更改为: net.ipv6.conf.all.disable ...

  6. 阿里云ECS配置JDK和tomcat

    一.配置JDK 1.利用Xftp连接ECS 2.新建文件夹 在ECS上新建一个放压缩包的文件夹,便于整理 (此处也可以在xshell中利用代码新建mkdir /home/temp) 3.将下载好的JD ...

  7. 第一次用阿里云ecs配置pptp vpn遇到的问题。

    在国外没办法使用一些国内一些涉及版权的网站,各种音乐和视频都没法看很不爽.自己租了个ecs.vps上安装vpn网上很多教程,但是有些地方只是copy上去还是不行的,得根据vps的具体情况改动一下才可以 ...

  8. 阿里云ecs配置辅助网卡绑定公网ip地址

    EIP直通车 前置条件:1.大家的实例是从经典迁移到VPC里面的,上古时期,经典实例大家购买实例的时候都是买了带宽的.而这种带宽一般情况下都是包年包月的,而且这种绑定在实例上的IP,我们把它叫做公网I ...

  9. 阿里云ECS配置踩坑之路

    1.利用shadowsocks配置SVN(用于软件部署环境) 2.安全组设置 3.FTP搭建 https://www.cnblogs.com/hexige/p/7809481.html

随机推荐

  1. MySQL关于useSSL的问题,会弹出警告

    我在手动配置dbcp时,执行数据库相关的操作时,报错以下: Fri Aug 28 21:10:19 CST 2020 WARN: Establishing SSL connection without ...

  2. jmeter(一)

    一.首先是下载:下载地址为:http://jmeter.apache.org/download_jmeter.cgi选择Binaries下的相应压缩包.ps:jmeter是开源项目,一般这种开源项目B ...

  3. docker报错处理集合

    前言 本篇博客将把docker错误都进行整合,方便大家进行查看,如果各位同学有遇到docker使用中遇到的报错,也可以把报错信息截图和处理办法微信发我. docker报错 1. 拉取镜像显示被拒绝 2 ...

  4. Node.js 从零开发 web server博客项目[express重构博客项目]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  5. 登录、认证、token处理、前台cookie存储token

    免费课程相关表设计 models的设计 from django.contrib.contenttypes.fields import GenericRelation class Course(mode ...

  6. 利用adb查看手机设备ip和连接手机的两种方式

    电脑安装adb(查看菜鸟adb教程) [cmd]->输入adb devices (设置了path,否则需要 ./路径/adb devices)如图: 查看ip两种方法(可能有更多,目前我还没看到 ...

  7. Docker数据卷和数据卷容器

    是什么 数据卷设计的目的,在于数据的永久化,他完全独立于容器的生存周期,因此,Docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制对容器引用的数据卷进行处理.类似我们Redis ...

  8. 几个超级实用但很少人知道的 VS 技巧[更新]

    大家好,今天分享一些实用的 VS 技巧,而这些技巧我发现很多人都不知道.因为我经常在工作中遇到:我在同事电脑上解决问题,或在会议上演示代码示例时,使用了一些 VS "骚"操作,他们 ...

  9. throw throws try catch finally return

    throw throw 语句用于抛出异常,例如 throw new EOFException().   throws 当使用throw 语句抛出checked 异常后,可以不用捕获异常并处理,而是使用 ...

  10. Python-装饰器中保留被装饰函数元数据

     函数的元数据包括哪些呢? 1. 函数名 .__name__ 2. 函数注释 .__doc__ ... 那,如何保留被装饰函数元数据,通过wraps装饰器保留被装饰函数的元数据 import time ...