Linux中使用curl命令,使用curl命令发送邮件

大家都知道可以用 curl 来访问 web 页面、下载文件等等,目前最新版本是curl 7.61.0。其实 curl 的功能远不止这么点,它支持众多协议,可以使用 curl 命令来发送邮件,本文就来说说这个技巧。

项目地址

WEB SITE

GitHub

确认 curl 是否支持SMTP

首先确认你的 curl 是否支持 smtp

$ curl-config --protocols | grep SMTP

SMTP

SMTPS

curl-config 命令默认是没有安装的,需要安装一下。

CentOS/RHEL系统:

$ yum install libcurl-devel

Debian/Ubuntu系统:

$ apt-get install libcurl4-openssl-dev

如果不支持 smtp 协议,那么升级 curl,一般新版本都支持。

安装高版本CURL

1.使用 yum 安装的 curl 一般不支持 smtp 协议,接下来我们使用源码包来安装 curl

$ cd /usr/local/src

$ wget https://curl.haxx.se/download/curl-7.61.0.tar.gz

$ tar xzvf curl-7.61.0.tar.gz

$ cd curl-7.61.0

$ ./buildconf

$ ./configure

$ make && make install

2.再次确认下是否支持 curl

$ /usr/local/bin/curl-config --protocols | grep SMTP

SMTP

SMTPS

备注:默认情况下,curl 会被安装到 /usr/local/bin 下,与老版本同时存在。

使用 curl 发送邮件

试着给 linux@ywnz.com 发送一份邮件。

1.编写邮件内容

cat mail.txt

From:linux1@ywnz.com

To:linux@ywnz.com

Subject: curl发送邮件标题

这里是内容,上面有一个空行别忘记了。

2.发送邮件

$ /usr/local/bin/curl -s --url "smtp://smtp.ywnz.com" --mail-from "linux1@ywnz.com" /

--mail-rcpt "linux@ywnz.com" --upload-file mail.txt --user "linux1@ywnz.com:123456"

3.参数说明

--url :smtp地址

--mail-from:发件人邮箱

--mail-rcpt:收件人邮箱

--upload-file:信件内容,包含发件人、收件人、标题、内容

--user:账号密码,中间用冒号分隔

curl 更多协议

curl 支持众多协议,想知道当前 curl 支持哪些协议,使用如下命令:

/usr/local/bin/curl-config --protocols

DICT

FILE

FTP

FTPS

GOPHER

HTTP

HTTPS

IMAP

IMAPS

POP3

POP3S

RTSP

SMB

SMBS

SMTP

SMTPS

TELNET

TFTP

zabbix curl 发邮件脚本:

我们通常使用 sendEmail 来发送告警,下面分享一个 zabbix 使用 curl 发送告警邮件的脚本

$ curl zabbix_curl_sendmail.sh

#!/bin/bash

# ------------------------------------------

# FileName:    zabbix_curl_sendmail.sh

# Revision:    1.0

# Date:        2018/7/11

# Author:      凉白开

# Description: use curl send email

# Notes:       ~

# ------------------------------------------

# Copyright:   2018 (c) 凉白开

# License:     GPL

MAIL_FROM='support@ttlsa.com'

MAIL_TO=$1

MAIL_SUBJECT=$2

MAIL_CONTENT=$3

MAIL_CONTENT_FILE="/tmp/`/bin/date +%s`.txt"

MAIL_SMTP='smtp://smtp.ttlsa.com'

MAIL_USER='support@ttlsa.com'

MAIL_PASSWORD='123456'

# create mail content file

echo "From:${MAIL_FROM}

To:$1

Subject: $MAIL_SUBJECT

$MAIL_CONTENT "> ${MAIL_CONTENT_FILE}

# send mail

/usr/local/bin/curl -s --url "${MAIL_SMTP}" --mail-from "${MAIL_FROM}" --mail-rcpt ${MAIL_TO} /

--upload-file ${MAIL_CONTENT_FILE} --user "${MAIL_USER}:${MAIL_PASSWORD}"

# delete mail content file

rm ${MAIL_CONTENT_FILE}

TAG:

除非注明,文章均由 Linux系统学习 整理发布,欢迎转载。如有版权争议,请联系删除。

文章评论

留言与评论(共有 0 条评论)

验证码:

b2afe5d1fe9f478fafeb0d6ac357ee2a.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值