使用sendmail来发邮件

安装sendEmail

    sendEmail是一个免费、轻量级、命令行的SMTP邮件客户端。

    如果你需要使用命令行方式发送邮件,那么sendEmail是非常完美的选择:使用简单、功能强大。

wget -P /tmp 
# 安装组件
yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
# 解压压缩包,并把命令拷贝到/usr/local/bin下
tar -zxvf /tmp/sendEmail-v1.56.tar.gz -C /tmp
cp /tmp/sendEmail-v1.56/sendEmail /usr/local/bin/
chmod +x zabbix:zabbix /usr/local/bin/sendEmail

3. 创建zabbix报警脚本目录

mkdir -p /usr/local/zabbix/alertscripts
chown -R zabbix:zabbix /usr/local/zabbix/alertscripts
4. 修改zabbix服务端配置文件指定脚本目录
vim /usr/local/zabbix/etc/zabbix_server.conf
# 将AlertScriptsPath变量修改为如下,大概在448行左右
AlertScriptsPath=/usr/local/zabbix/alertscripts

5. 测试sendEmail发送邮件(与步骤六二选一)

#命令行测试如下命令:
# sendEmail -f from@163.com -t to@qq.com -s smtp.163.com -u 'test' -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp 'passwd' -m 'test' # 出现一下提示证明命令安装正确:
Dec 24 23:01:59 zabbix sendEmail[3612]: Email was sent successfully! # 收到此提示表示发送成功 # -f from@163.com # 发件人邮箱地址 # -t to@qq.com # 收件人邮箱地址 # -s smtp.163.com # 发件人邮箱的smtp服务器地址 # -u 'test' # 邮件标题 # -o message-content-type=html # 邮件内容格式为html # -o message-charset=utf8 # 邮件内容编码为utf8 # -xu from@163.com # 发件人邮箱登录用户名 # -xp 'passwd' # 发件人邮箱登录密码 # -m 'test' # 邮件内容 # 编写邮件警报脚本 vim /usr/local/zabbix/alertscripes/sendEmail.sh #!/bin/bash to=$1 subject=$2 message=$3 smtp_server="smtp.163.com" /usr/local/bin/sendEmail -f from@163.com -t "$to" -s "$smtp_server" -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp "passwd" -m "$message" chmod +x sendEmail.sh chown zabbix.zabbix sendEmail.sh

  6. 使用163代理发送邮件

yum install -y mailx
# 在文件最下方加入两行163认证即可
vim /etc/mail.rc
# 设置发件人地址,smtp服务器
set from=pyslinux@163.com smtp=smtp.163.com
# 设置发件人smtp认证用户名和密码(由于163开启smtp后这里设置的是授权码而非登录密码)
set smtp-auth-user=pyslinux@163.com smtp-auth-password=密码 smtp-auth=login
# 测试邮件发送
mail -s 'test' xxx@qq.com < /etc/passwd
#  编写脚本
vim /usr/local/zabbix/alertscripes/mail.sh
 
#!/bin/bash
echo "$3"|mail -s "$2"  "$1"
 
chmod +x /usr/local/zabbix/alertscripes/mail.sh

 

 

转载于:https://www.cnblogs.com/kaishirenshi/p/8966799.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在电子邮件发送过程中,`send_message` 和 `sendmail` 都是用于发送邮件的方法,但它们的使用方式和用途略有不同。 1. `send_message` 方法: - `send_message` 方法是 `smtplib` 库中 `SMTP` 对象的一个方法,用于发送包含多部分邮件内容的邮件对象。 - 你可以使用 `MIMEMultipart` 对象来创建邮件,然后使用 `send_message` 方法发送该邮件。 - 这个方法可以发送包含附件、HTML内容、图片等多种格式的邮件。 - 例如: ```python from email.mime.multipart import MIMEMultipart import smtplib # 创建邮件对象 msg = MIMEMultipart() # 设置邮件内容等 # 发送邮件 server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login('sender_email@gmail.com', 'sender_password') server.send_message(msg) server.quit() ``` 2. `sendmail` 方法: - `sendmail` 方法是 `smtplib` 库中 `SMTP` 对象的另一个方法,用于直接发送原始字符串格式的邮件内容。 - 你需要手动构建包含完整邮件头和内容的原始字符串,并将其作为参数传递给 `sendmail` 方法。 - 这个方法比较底层,适用于发送简单的文本邮件,不支持附件、HTML内容等高级特性。 - 例如: ```python import smtplib # 构建原始邮件内容 email_content = "Subject: Hello\n\nThis is the email body." # 发送邮件 server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login('sender_email@gmail.com', 'sender_password') server.sendmail('sender_email@gmail.com', 'recipient_email@gmail.com', email_content) server.quit() ``` 综上所述,`send_message` 方法更适合发送包含复杂内容的邮件,而 `sendmail` 方法适合发送简单的文本邮件。选择使用哪种方法取决于你的具体需求和邮件内容的复杂程度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值