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  


目录
相关文章
|
3月前
|
自然语言处理 数据挖掘 Linux
ModelScope问题之拷贝到内网linux系统运行代码报错如何解决
本合集将提供ModelScope安装步骤、配置要求和环境准备,以便用户顺利启动ModelScope进行模型开发和测试。
68 0
|
Linux
Linux通过mailx向网易163发送邮件
Linux通过mailx向网易163发送邮件 以rsync文件传输校验是否完整为例
358 0
Linux通过mailx向网易163发送邮件
|
7天前
|
运维 Ubuntu Linux
linux发送邮件使用外部邮箱
linux发送邮件使用外部邮箱
|
7月前
|
Linux
Linux通过QQ邮箱账号使用mailx发送邮件
Linux通过QQ邮箱账号使用mailx发送邮件
113 2
|
3月前
|
Linux 应用服务中间件 nginx
内网环境下 - 安装linux命令、搭建docker以及安装镜像
内网环境docker镜像的安装,以及内网环境如何安装linux命令
内网环境下 - 安装linux命令、搭建docker以及安装镜像
|
8月前
|
Java Linux 网络安全
Linux CentOS7搭建邮件服务器并用Foxmail和Java代码发送邮件(下)
Linux CentOS7搭建邮件服务器并用Foxmail和Java代码发送邮件(下)
277 0
|
8月前
|
域名解析 Java Linux
Linux CentOS7搭建邮件服务器并用Foxmail和Java代码发送邮件(上)
Linux CentOS7搭建邮件服务器并用Foxmail和Java代码发送邮件(上)
444 0
|
8月前
|
Java Linux 网络安全
linux内网环境安装svn
linux内网环境安装svn
159 1
|
10月前
|
Linux Windows
ceb2Pdf.exe实现ceb文件转pdf,内网离线安装wine(手动编译32位)实现在centos(linux)上运行window程序exe程序,解决wine : Z:\xxx EXE格式无效
最近项目需要实现ceb文件在线预览,之前并没见过这格式的文件,一搜发现果然不简单,这破东西还不太好弄在线预览,经过查找发现只有windows版本的cebToPdf.exe程序可以转换成pdf再进行预览,但是我们服务器是centos(内网)啊,所以就有了该篇文章。
202 0
|
10月前
|
Linux
Linux 设置双网卡通信,外网网卡和内网网卡
Linux 设置双网卡通信,外网网卡和内网网卡
309 0

热门文章

最新文章