首页 >  编程教程 >  环境搭建 >  正文

linux系统CentOS发送邮件

 作者:潘某人SEO
1203

很多时候我们需要在服务器上发送邮件,如定时发送网站日志,或者服务器信息状态,通过服务器触发自动发送邮件来达到定时或者及时通知到开发者。今天来讲一下如何在centos系统中配置邮件发送功能,其它的系统版本同样的操作方法

  • 系统环境:系统为CentOS7,
  • 使用软件:mailx 和 sendmail
  • 邮箱:163邮箱

1、注册邮箱

centos发送邮件

这边以163邮箱为例,注册一个163邮箱,进入设置页面如上图所示。开启IMAP/SMTP服务,并创建一个授权码,授权码是一串字母,记录保存好,一旦创建页面关闭就无法在查看,只能重新创建。这里以163邮箱为例子,其它的邮箱服务商也是同样的操作操作方法。

2、安装 mailx和sendmail

yum -y install sendmail mailx
1

3、配置邮箱证书

由于会使用邮箱的ssl端口发送邮件,所以就需要配置邮箱的证书,这边以163邮箱证书配置为例,如果需要使用其它邮箱的基本也差不多的操作。

## 以下命令,一行一行执行即可
mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
certutil -L -d /root/.certs
cd /root/.certs/
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt
1
2
3
4
5
6
7
8

4、配置mailx

找到系统根目录下的文件 /etc/mail.rc,在尾部追加以下配置

set from=seoddcn@163.com    #可以随便填,为了不报错建议填写你刚才注册的163邮箱号,
set smtp=smtps://smtp.163.com:465    #此行请勿更改
set smtp-auth-user=xxx@163.com       #填写你刚才注册的163邮箱号,
set smtp-auth-password=xxx           #填写你刚才申请的授权码
set smtp-auth=login                  #此行请勿更改
set nss-config-dir=/root/.certs/     #此行请勿更改
set ssl-verify=ignore
1
2
3
4
5
6
7
  • from:对方收到邮件时显示的发件人
  • smtp:指定第三方发邮件的smtp服务器地址
  • set smtp-auth-user:第三方发邮件的用户名
  • set smtp-auth-password:用户名对应的密码,有些邮箱填的是授权码
  • smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
    到了这一步服务器发送邮件的功能基本就已经实现了,然后就可以根据自己的需求来使用,这边已定时附送服务器日志文件为例子演示。实现方式以shell脚本控制邮件发送逻辑,搭配linux系统的crontab定时器来实现。

5、创建shell脚本

假设日志文件的路径是“/home/www/log/seodd_log.txt
在服务器“/home/www/sh”目录下创建脚本文件seodd.sh,并将一下代码添加到到此脚本文件

#!/bin/sh
# 快速发送
echo "邮件的内容" | mail -s "邮件主题" 收件人@qq.com

# 将日志文件内容作为邮件的内容进行发送
cat /home/www/log/seodd_log.txt|mail -s '邮件主题' 收件人@qq.com

# 将日志文件内容作为附件发送,加参数(-a 附件地址)
echo "邮件正文内容" | mail -s "邮件主题" -a /home/www/log/seodd_log.txt  收件人@qq.com
1
2
3
4
5
6
7
8
9

上面是常用的三种邮件内容发送形式,假设我们使用附件的形式发送,那么前面的代码可以注释掉,或者删除,但是第一行勿动;然后邮件内容,文件地址路径及发件人邮箱修改成你需要的即可,如果需要实现更复杂功能就可以研究下shell脚本编程。

6、创建定时器

# 切换到服务器根目录
cd /
# 打开crontab定时器
crontab -e
1
2
3
4

依次执行上述命令就进入到了crontab文件的编辑状态,相当于linux的vi编辑,输入内容前先敲击键盘i键

59 23 * * * /home/www/sh/seodd.sh
1

添加上述这行代码,代表每日的凌晨执行seodd.sh这个邮件发送shell脚本,就可以实现定时邮件发送功能,在需要达到这个效果还有几步操作。
售前推出crontab文件的编辑模式,敲击键盘Ecs建,然后输入 :wq ,按下回车代表保存成功,参考vi编辑即可。

7、重启crontab服务

service crond restart
1

crontab服务重启成功之后,以上的定时发送服务器日志邮件的功能就可以实现了,大家可以灵活使用shell脚本和crontab定时器就可以实现满足各种需求了。

申明:以上内容仅代表个人观点,仅供学习参考 本站图片来源于站点原创或CC0协议图库站点或已获得VRF授权的图库站点 版权申明:本文为博主原创,未经授权任何个人或组织单位不得复制、转载、摘编以及其它形式的应用! 本文地址:https://www.chateach.com/it/huanjing/840
相关文章
  • Java字符串的替换replace()、replaceFirst()和replaceAll()

    java,字符串

    Java字符串的替换replace()、replaceFirst()和replaceAll(),如何匹配替换字符串中的内容。

    532
    • java
    • 字符串
  • SpringBoot如何实现邮箱验证

    SpringBoot,邮箱验证,验证码发送

    在网站及各种应用中不可避免的需要运用到邮件发送服务,如消息提醒,验证码的发送,都需要使用到邮件发送。大体思路:先生成一个六位随机验证码并存起来,调用邮箱接口发送验证码,将用户输入的验证码和之前保存的验证码进行比对。

    1035
    • SpringBoot
    • 邮箱验证
    • 验证码发送
  • 手把手教你建立一个自己的网站

    零基础建站

    本站的主要的是分享自己建站过程中遇到的各种问题和解决方案,适合没有任何基础但是想要建立自己的一个网站的朋友,其实如果想要简单的入门让一个网站跑起来是非常的简单的。如果说是采用wordpress等CMS系统来搭建一个网站的话就更加简单了。进本上只要动手能力自学能力强一点,基本上几个小时就可以让一个站点运行起来。

    1457
    • 零基础建站
  • laravel中如何获取和设置cookie操作

    laravel ,cookie操作

    在laravel框架中 cookie的优势在于,laravel在底层会对cookie值进行加密,并且使用授权码进行签名,如果客户端修改了cookie值,那么就会失效。会比直接在php中使用cookie更加严谨安全,当然为了laravel中cookie的操作方法会与php原生的方法有所区别,虽然也可以使用php原生的方法操作,但是不推荐。

    1014
    • laravel
    • cookie操作
  • java中的JDK、JRE、JVM三者的区别

    JDK,JRE,JVM

    java中的JDK、JRE、JVM三者的区别,JDK是 Java 语言的软件开发工具包(SDK);JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    733
    • JDK
    • JRE
    • JVM
  • linux环境下安装nodejs

    nodejs安装

    linux系统下安装最新版nodejs的方法,Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境。

    782
    • nodejs安装
  • JS中的indexOf方法

    indexOf

    indexOf()是js中内置的方法之一,它的功能大家都很熟悉:简单来说就是得到数据的索引,对于正则不熟练的人,是个很不错的方法。string中indexOf() 会将数值参数转换为字符再查询索引;number类型没有IndexOf() 可以转换为字符再使用;array中indexOf() 是严格比较

    525
    • indexOf
  • 原生js 复制内容到剪切板代码实现

    js 复制内容,剪切板代

    有时候为了提升用户体验,比如在某些页面需要实现点击内容,将内容复制到剪切板,可以提升用户复制内容的操作效率;因此在实际操作中通过一定的事件触发复制功能是非常有意义的行为,下面是两种通过原生js实现复制内容到剪切板。

    923
    • js 复制内容
    • 剪切板代
  • linux换将下安装Composer的方法

    Composer安装

    linux换将下安装Composer的方法,对于需要使用laravel框架开发站点,安装Composer是非常有必要的,可以使得laravel的安装管理变得更加的方便快捷。

    913
    • Composer安装
  • SpringBoot——Thymeleaf中的条件判断

    Thymeleaf

    SpringBoot——Thymeleaf中的条件判断(th:if、th:unless、th:switch、th:case),th:if、th:unless、th:switch、th:case 这几个属性,其实和JSP里面的那些标签都是类似的,含义就可以理解为Java语言中的if、else、switch-case这些条件判断一样,所以这里就不再详细叙述了,下面就直接给出例子!!!

    1371
    • Thymeleaf
  • html网页如何禁止打印页面

    禁止打印页面

    html网页如何禁止打印页面方式,可以禁止打印键盘的快捷键组合,但是用户可以直接鼠标操作浏览器来实现打印;所以通过css来屏蔽打印内容的输出更加的合理有效,代码如下所示。

    1388
    • 禁止打印页面
  • JavaScript简介

    JavaScript简介

    JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript

    1448
    • JavaScript简介
  • centos系统如何修改超级管理员root用户名

    root用户名修改,centos系统

    centos系统修改超级管理员root用户名实例演示,只要简单的将超级管理员root用户修改掉,那么被暴力破解几率就会直线下降。

    1003
    • root用户名修改
    • centos系统
  • 如何监听客户端的网络速度及质量

    网络质量

    在实际形况中,站点及应用可以满足绝对的流畅性,但是用户的网络环境千变万化,尤其是移动端用户,这种情况情况下页面加载速度的瓶颈完全就取决于用户的网络环境。通过浏览器的 Network Information API 接口中提供的Navigator对象的connection属性,来评估用户的连接速度以及设备所处的网络类型。

    690
    • 网络质量
  • php获取当前时间操作

    php获取时间

    在PHP语言中我们如何获取当前时间呢?只要通过date()和time()函数组合使用实现。

    1110
    • php获取时间
  • linux系统下使用Vue CLI脚手架安装vue3

    Vue CLI,vue3

    linux系统下使用Vue CLI脚手架安装vue3。Vue 提供了一个官方的 CLI,为单页面应用 (SPA) 快速搭建繁杂的脚手架。它为现代前。端工作流提供了功能齐备的构建设置。

    1252
    • Vue CLI
    • vue3
  • MySQL数据库的介绍

    MySQL数据库的介绍

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBM

    1392
    • MySQL数据库的介绍
  • php生成n位随机数

    php随机数

    php如何生成n位的随机数,给大家分享一个简单高效的方法,这里以随机生成6位数作为一个例子给大家演示。使用php的str_pad()和mt_rand()函数生成随机数。

    1304
    • php随机数
-- 这已经是底线了,看看别的把! --