Linux 内网发送邮件

简介: 有些问题需要第一时间发邮件报警出来,否则漏掉之后比较麻烦。

有些问题需要第一时间发邮件报警出来,否则漏掉之后比较麻烦。


需求: GP外部表有一个location 选项,这个选项是一个ip地址后面跟一个文件名,这个文件和外部表一 一对应。现需要监控外部表的location 是否为外部文件所放的IP地址。


发监控邮件用mail命令即可,不需要使用sendmail命令.


解决:

1、添加邮件服务器域名解析到/etc/hosts/

maildrop]# echo "邮件服务器ip地址 smtp.域名.com" >>/etc/hosts

2、修改/etc/mail.rc

#mail
set smtp=smtp.xxx.com               # 这里填入smtp地址
set smtp-auth=login                 # 认证方式
set smtp-auth-user="test"           # 默认对外发邮件的用户(关键),SMTP.domain.com认证的用户
set smtp-auth-password=password     # 这里填入密码(并非发件人邮箱的密码)
set ssl-verify=ignore               # 忽略证书警告
set from=user@xxx.com               # 设置发信人邮箱
set nss-config-dir="/root/.certs"   # 证书所在目录    

3、重启postfix

home]# postfix stop
postfix/postfix-script: stopping the Postfix mail system
home]# postfix start
postfix/postfix-script: starting the Postfix mail system
postfix reload 重新加载postfix 配置

Postfix邮件服务器采用了模块化的设计,由许多个不同的程序集合而成,分别用于实现不同的功能。Postfix在启动时首先启动名为master的进程,由master进程主导邮件的处理工作。


Postfix邮件系统的控制主要通过/usr/sbin/postfix命令进行,结合start、stop、check、reload选项分别实现启动、停止、检查、重载服务的操作。例如,若要启动postfix邮件服务,并验证服务状态,可以执行以下操作。

postfix]# postfix start
postfix/postfix-script: fatal: the Postfix mail system is already running
 postfix]# postfix status
postfix/postfix-script: the Postfix mail system is running: PID: 25621

需要注意的是,实际监听服务的进程名并不是postfix,而是master。

postfix]# netstat -anpt | grep ":25"
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      25621/master        
tcp        0      0 ::1:25                      :::*                        LISTEN      25621/master  

-a (all)显示所有选项,默认不显示LISTEN相关

-t (tcp)仅显示tcp相关选项

-n 拒绝显示别名,能显示数字的全部转化成数字。

-p 显示建立相关链接的程序名


4、如何发送一封邮件?

   echo '邮件内容' | mail -s '邮件标题' 收件人邮箱
  #或者:
  cat 邮件内容.txt | mail -s '邮件标题' 收件人邮箱
  #或者
  mail -s '邮件标题' 收件人邮箱 < 邮件内容.txt
  #或者
    mail -s "主题"  收件地址  -a 附件 < 文件(邮件正文.txt)
    #或者
    mail -vv -s "hello nineusn by shell" 'test@126.com'
     该种方式发送的邮件内容是以附件形式发送的

例子一:发送一封域外邮件的具体例子,也可以是用telnet mail.domain.com 25来一步一步模拟这个步骤。

]# echo -e "HostName: $HOSTNAME , ServiceName:$date" | mail -vv -s "hello nineusn" 'wtest@126.com' 
Resolving host smtp.cecchot.com . . . done.
Connecting to 10.56.200.80 . . . connected.
220 domain.com Anti-spam GT for Coremail System (domain.com[20190919])
>>> EHLO P1MAIL01 宣告客户机地址
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN  表示支持SMTP认证
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrUDI0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrfCDojUCa0xDrUUUUj
250-STARTTLS
250-SMTPUTF8
250 8BITMIME
>>> AUTH LOGIN 告知要进行认证登录,“AUTH LOGIN”进行登录认证,然后才能够正常发送邮件。用户名,密码字串默认使用BASE64编码的加密格式,使用openssl工具可以生成
334 dXNlcm5hbWU6 输入加密的用户名字串
>>> Y2ltc3VwcG9ydA== 通过openssl 对账户加密后的,可以使用测试 printf "user" | openssl base64
334 UGFzc3dvcmQ6 输入加密的密码字串
>>> Q2ltLVpueHh6eDMxNQ== 通过openssl 对密码加密后的,可以使用测试 printf "passwd" | openssl base64
235 Authentication successful 认证成功的反馈信息
>>> MAIL FROM:<cimsupport@cecchot.com> 告知发件人
250 Mail OK
>>> RCPT TO:<wangxucs123@126.com> 告知外域收件人地址
250 Mail OK
>>> DATA 告知要发送邮件数据
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Mail OK queued as AQAAfwC32dWmzR9f9cVoAA--.24696S2 成功提交到发送队列
>>> QUIT
221 Bye

例子二: 发送一个带附件的邮件到域外邮箱


需要注意的是

1、只有通过SMTP认证的用户才允许向外域发送邮件,否则只能够给本域内的其他用户发送邮件。例如,只有在通过认证以后,用户a@eeechot.com才能够向test@163.com等外部邮箱发送邮件,否则只能向lessof@eeechot.com等本域内的其他用户发送邮件。

2、向外域发送邮件时,还需要DNS服务器,外域的邮件服务器,互联网络等支持,对方才能够成功收到邮件

3、启动postfix时报错处理

20200728153041990.png

安装 rpm -ivh mysql-libs-5.1.73-3.el6_5.x86_64.rpm  


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
7月前
|
自然语言处理 数据挖掘 Linux
ModelScope问题之拷贝到内网linux系统运行代码报错如何解决
本合集将提供ModelScope安装步骤、配置要求和环境准备,以便用户顺利启动ModelScope进行模型开发和测试。
165 0
|
Linux
Linux通过mailx向网易163发送邮件
Linux通过mailx向网易163发送邮件 以rsync文件传输校验是否完整为例
472 0
Linux通过mailx向网易163发送邮件
|
6月前
|
存储 安全 Unix
【内网安全】Win&Linux&内存离线读取&Hashcat破解&RDP&SSH存储提取
【内网安全】Win&Linux&内存离线读取&Hashcat破解&RDP&SSH存储提取
|
6月前
|
网络协议 安全 Linux
【内网安全】隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac
【内网安全】隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac
100 0
|
Linux
Linux通过QQ邮箱账号使用mailx发送邮件
Linux通过QQ邮箱账号使用mailx发送邮件
268 2
|
7月前
|
运维 监控 Linux
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
233 0
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
|
7月前
|
Linux 应用服务中间件 nginx
内网环境下 - 安装linux命令、搭建docker以及安装镜像
内网环境docker镜像的安装,以及内网环境如何安装linux命令
1150 3
内网环境下 - 安装linux命令、搭建docker以及安装镜像
|
7月前
|
运维 Ubuntu Linux
linux发送邮件使用外部邮箱
linux发送邮件使用外部邮箱
|
7月前
|
数据可视化 数据挖掘 Linux
如何在Linux部署DataEase数据分析服务并实现无公网IP远程分析内网数据信息
如何在Linux部署DataEase数据分析服务并实现无公网IP远程分析内网数据信息
203 0
|
7月前
|
存储 Linux 数据安全/隐私保护
如何在Linux搭建MinIO服务并实现无公网ip远程访问内网管理界面
如何在Linux搭建MinIO服务并实现无公网ip远程访问内网管理界面