附上python邮件发送脚本(对于发送测试邮件不成功的情况可以看下debug中的错误代码提示,如(554, DT:SPM)一般情况是发送的邮件被视为垃圾邮件和病毒邮件,需要调整发件内容):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
#python-version:2.7
from
email
import
encoders
from
email.header
import
Header
from
email.mime.text
import
MIMEText
from
email.utils
import
parseaddr, formataddr
import
smtplib
import
sys
def
send_mail(_to_email,_subject,_message):
from_addr
=
"xxxx@163.com"
password
=
"your_password"
smtp_server
=
"smtp.163.com"
msg
=
MIMEText(_message,
'plain'
,
'utf-8'
)
msg[
'Subject'
]
=
_subject
server
=
smtplib.SMTP(smtp_server,
25
)
# 使用SSL加密传输
#server = smtplib.SMTP_SSL(smtp_host,994)
# 对发送过程开启调试模式
server.set_debuglevel(
1
)
server.login(from_addr, password)
server.sendmail(from_addr, [_to_email], msg.as_string())
server.quit()
if
__name__
=
=
'__main__'
:
send_mail(sys.argv[
1
],sys.argv[
2
],sys.argv[
3
])
|
使用shell 借助mailx 发送邮件脚本, 需要安装dos2unix:
1
|
yum
install
mailx dos2unix -y
|
1
2
3
4
5
6
7
8
9
10
11
|
#!/bin/bash
to=$1
subject=$2
body=$3
echo
"$body"
>
/tmp/zabbix_mail
.log
dos2unix
/tmp/zabbix_mail
.log
mail -s
"$subject"
"$to"
<
/tmp/zabbix_mail
.log
#cat <<EOF | mail -s "$subject" "$to"
#$body
#EOF
echo
"==================="
>>
/tmp/zabbix_mail
.log
|
使用mail 命令发送邮件还需要配置/etc/mail.rc 文件,在最后添加邮箱服务器信息:
1
2
3
4
5
|
set
from=alert_mail@126.com
set
smtp=smtp.126.com
set
smtp-auth-user=alert_mail@126.com
set
smtp-auth-password=password
set
smtp-auth=login
|
本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/1923962