Linux中通过SHELL发送邮件

Linux中通过SHELL发送邮件,第1张

    笔者做过做过使用python发送邮件- Python使用yagmail库发送邮件 ,那么在不同平台都可以完成一些监控报警功能。但是在linux平台下,如果脚本是shell实现的,可以调用python脚本,也可以直接使用shell来发送。

    1、按照mailx软件包, 安装后在/usr/bin/mail

        sudo yum install mailx -y

    2、修改配置文件/etc/mail.rc

        直接修改配置文件vim /etc/mail.rc, 在最后追加下面的配置,笔者使用的是163邮箱。需要注意的是,需要进入邮箱开启SMTP服务,然后得到一个授权码,用于登录第三方邮件客户端的专用密码。smtp-auth-password即为授权码,而不是邮箱地方密码。

    3、发送邮箱测试

          命令行输入: echo "测试邮件" | mail -s "邮件主题" -a ./myshells/clear_buffcache.sh ***@qq.com  。-s添加邮箱主题,并添加附件后将邮箱内容一起发送给***@qq.com  。邮箱里面立马就可以收到了。

    也可以使用文件内容进行邮件发送:mail -s  "邮件主题"  收件地址  <  mail.txt  。

    也可以在命令行输入邮箱内容:mail -s  "邮件主题"  收件地址  ,输入完这行命令后回车,会进入邮件正文的编写,可以输入任何文字。当邮件正文输入完成后,需要按CTRL+D结束输入后发送。

    如果发送失败,咋命令行会提示错误: message not sent,并会在用户目录下的dead.letter里面显示具体信息。

1 组建两台邮件服务器A与B与一台DNS,其中

A 192.168.100.102/24 有域名mail.rhce.com

B 192.168.100.101/24 有域名mail.example.com

DNS 192.168.100.98则A上有如下配置

/etc/mail/local-host-names 用于定义收发邮件的主机别名

# local-host-names - include all aliases for your machine here.

rhce.com #注:不可少,否则收不到邮件,虽然可以发

mail.rhce.com #注:可不要/etc/mail/access #该文件用于限制哪些客户端可以使用此邮件服务器来转发邮件 (也可全不配,默认即是转发的)

rhce.com RELAY

example.com RELAY

192.168.100. RELAY

192.168.10. REJECT #设置拒绝转发192.168.10网段的邮件注:可以设置的选项还有 OK/REJECT/DISCARD/ERROR:550

B上有如下配置

/etc/mail/local-host-names (也可不配)

# local-host-names - include all aliases for your machine here.

example.com

mail.example.com/etc/mail/access

rhce.com RELAY

example.com RELAY

192.168.100. RELAY A和B均打开sendmail/dovecot服务 注:只有使用了dovecot才能使用Foxmail/OutLokk等通过POP3/IMAP协议接受邮件改/etc/mail/sendmail.cf 设置

O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA

service sendmail restart 注:要在0.0.0.0上监听

service dovecot restart 注:此时查看是否打开了110/143端口,实际上还打开了993(IMAP-SSL)/995(POP3-SSL)端口

双方分别设置192.168.100.98为dns的IP

此外双方均要用makemap hash access.db<access 生成访问许可库文件

另外双方的hostname与/etc/sysconfig/network中的域名均要设为相应的域名DNS中的设置如下

如果DNS服务器也作为网关的话,DNS首先要打开ip转发功能

named.confoptions {

directory "/var/named"

dump-file "/var/named/data/cache_dump.db"

statistics-file "/var/named/data/named_stats.txt"

}

include "/etc/rndc.key"zone "." {

type hint

file "named.ca"

}zone "example.com" {

type master

file "example.com.zone"

allow-transfer {

192.168.1.177

192.168.7.17

}

}

zone "rhce.com" {

type master

file "rhce.com.zone"

allow-transfer {

192.168.1.177

192.168.7.17

}

}example.com.zone$ttl 38400

example.com. IN SOA dns.example.com. admin.example.com. (

2005090503 Serial

10800 Refresh

3600 Retry

604800 Expire

38400 ) Negative Cache TTL

example.com. IN NS dns.example.com.

rhel4 IN CNAME dns

bbs IN CNAME www

samba IN CNAME www

example.com. IN MX 5 mail

mail IN A 192.168.100.101

rhce.com.zone$ttl 38400

rhce.com. IN SOA dns.rhce.com. admin.rhce.com. (

2005090503 Serial

10800 Refresh

3600 Retry

604800 Expire

38400 ) Negative Cache TTL

rhce.com. IN NS dns.rhce.com.

www.rhce.com. IN A 192.168.100.29

rhel4 IN CNAME dns

bbs IN CNAME www

samba IN CNAME www

rhce.com. IN MX 5 mail

mail IN A 192.168.100.102注:linux默认是不让用户用root用户登录邮箱的,可以换为alading或其它用户

可以用 host -t mx example.com可以查询出example.com的MX记录 设置POP3S和IMAPS服务器都必须生成相应的密钥和证书pop3端口110,imap端口143,pop3s端口995,imaps端口993

服务器使用私钥加密邮件,客户端收邮件时,使用证书中的公钥对邮件进行解密,才能够正常读邮件

制作私钥和自签名证书

cd /etc/pki/tls/certs/

make dovecot.pem #该文件保存邮件服务器的私钥和公钥信息

vi /etc/dovecot.conf

ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem

ssl_key_file = /etc/pki/dovecot/private/dovecot.pem

改为

ssl_cert_file = /etc/pki/tls/certs/dovecot.pem

ssl_key_file = /etc/pki/tls/certs/dovecot.pem

service dovecot restart关于Foxmail的使用

1 默认情况下不可以登录到root的邮箱,但可以用于发送

2 如果普通用户不能登录到邮箱,用passwd 设置密码后,再打开foxmail的邮箱账户设置,设置邮件服务器里头的高级设置,点中SMTP与POP3的SSL连接再试试TLS Transport Layer Security

PKI Public Key Infrastructure

mail -s "Hello from linuxde.net by shell" admin@linuxde.net

hello,this is the content of mail.

welcome to www.linuxde.net

第一行是输入的命令,-s表示邮件的主题,后面的admin@linuxde.net则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,我们可以输入任何文字,比如上面的两行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7122854.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存