linux系统CentOS发送邮件

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

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

1、注册邮箱

centos发送邮件

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

2、安装 mailx和sendmail

plaintext
1
                    yum -y install sendmail mailx
               

3、配置邮箱证书

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

plaintext
1
2
3
4
5
6
7
8
                    ## 以下命令,一行一行执行即可
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               

4、配置mailx

找到系统根目录下的文件

plaintext
1
2
3
4
5
6
7
                    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
  • 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,并将一下代码添加到到此脚本文件

plaintext
1
2
3
4
5
6
7
8
                    #!/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

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

6、创建定时器

plaintext
1
2
3
4
5
6
                    # 切换到服务器根目录
cd /
# 打开crontab定时器
crontab -e
依次执行上述命令就进入到了crontab文件的编辑状态,相当于linux的vi编辑,输入内容前先敲击键盘i键
59 23 * * * /home/www/sh/seodd.sh               

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

7、重启crontab服务

plaintext
1
                    service crond restart               

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

申明:本站内容仅代表个人观点,仅供学习参考;未经授权任何个人或组织单位不得复制、转载、摘编以及其它形式的应用!

本站文章可能使用到互联网上的资料,若对您造成困扰,请联系 kk19@foxmail.com除理

本文地址:https://www.chateach.com/it/huanjing/840

相关文章

  • 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是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1290
    • JDK
    • JRE
    • JVM
  • linux系统下使用Vue CLI脚手架安装vue3

    Vue CLI,vue3

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

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1939
    • Vue CLI
    • vue3
  • laravel url路由中存在双斜杠(//)造成404问题

    laravel路由双斜杠

    解决在laravel框架下,网站的首页后面加上双斜杠(//),页面显示的尽然不是首页,是一个空白的页面状态码是200,或者报404错误。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 2468
    • laravel路由双斜杠
  • 解决百度UEditor富文本编辑器回车追加P标签问题

    UEditor,百度富文本编辑器,p标签

    网站的教程很多但是都比较复杂,给大家分享一个1秒可以解决百度富文本编辑器强制自动追加P标签的问题的方法。百度富UEditor富文本编辑器有一个坑就是无论你怎么修改只要你回车或者换行了就会强行追加一个P标签,会严重的影响到我们正常排版。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 3088
    • UEditor
    • 百度富文本编辑器
    • p标签
  • HTML marquee标签如何制作滚动文字

    marquee标签,滚动文字

    在HTML页面中可以使用marquee标签实现页面文字滚动效果,给大家分享的是有关HTML代码如何制作滚动文字的内容。HTML技术中使文字滚动的方法是使用双标签marquee。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1505
    • marquee标签
    • 滚动文字
  • vue框架简介及其优势

    vue框架,vue优势

    vue框架简介及其优势,Vue 是一套用于构建用户界面的渐进式JavaScript框架,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。。但是vue对于SEO并不是非常友好,及其解决方案。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 2106
    • vue框架
    • vue优势
  • springBoot之Thymeleaf常见语法

    springBoot,Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1655
    • springBoot
    • Thymeleaf
  • linux环境下安装nodejs

    nodejs安装

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

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1286
    • nodejs安装
  • Vue3 中全局引入 axios及其使用方法

    axios使用方法,Vue3

    Vue3如何安装axios,如何在全局使用axios,定义全局属性来使用axios,基本上每个页面都要使用到axios,因此在main.js中定义全局属性来实现axios告别繁杂的引用。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1265
    • axios使用方法
    • Vue3
  • laravel Request的所有方法详解

    laravel Request,cookie,http参数

    laravel Request的所有方法详解,laravel实现如何获取cookie、表单参数、提交的文件、laravel如何获取网址url、路径、ip、端口等。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 2044
    • laravel Request
    • cookie
    • http参数
  • Java字符串的替换replace()、replaceFirst()和replaceAll()

    java,字符串

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

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1081
    • java
    • 字符串
  • 手把手教你建立一个自己的网站

    零基础建站

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

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 2006
    • 零基础建站
  • springboot网站搭建部署详细流程

    springboot

    linux环境如何搭建java框架springboot,为大家演示一种快速简单的搭建springboot的方法。由于springboot是java的众多框架之一,因此需要部署好java的运行环境,即服务器安装好jdk18以及tomcat3,注意版本的兼容性。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1679
    • springboot
  • laravel如何封装函数全局调用

    laravel函数封装

    laravel如何封装函数,实现全局调用。我们就拿PHPAnalysis分词程序作为例子来演示下。PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 2031
    • laravel函数封装
  • laravel下数据密码正确但还是无法连接

    laravel数据库链接

    使用laravel框架的时候,数据的密码确认是正确的但是就是无法连接成功数据库。出现这种情况往往并不是数据库的配置或者密码等参数存在问题,其实你只是少了非常关键的一步清空配置缓存。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1702
    • laravel数据库链接
  • MySQL数据库的介绍

    MySQL数据库的介绍

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

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 2032
    • MySQL数据库的介绍
  • 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这些条件判断一样,所以这里就不再详细叙述了,下面就直接给出例子!!!

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 2169
    • Thymeleaf
  • SpringBoot--Thymeleaf日期格式处理

    Thymeleaf,日期格式

    Thymeleaf作为众多模板引擎中的一种,我最初也是对它充满了陌生,在SpringBoot如何处理时间格式,SpringBoot--Thymeleaf日期格式处理。

    用于表示时间的图标 一个时钟的图标,用于向用户表达后面跟着的是一个时间
    用于表示阅读次数的图标 一个类似睁开眼睛的图标,用于向用户表达后面跟着的数字是一个阅读的次数 1480
    • Thymeleaf
    • 日期格式