Bash脚本发送邮件80


在Linux或基于Unix的系统中,使用Bash脚本发送电子邮件是一种方便且高效的方法。本文将指导您逐步构建一个Bash脚本,让您能够通过命令行轻松发送电子邮件。

先决条件

在开始之前,确保您满足以下先决条件:* 安装了Bash shell
* 设置了SMTP服务器,并具有服务器的IP地址和端口号
* 拥有发件人和收件人的电子邮件地址

构建Bash脚本

使用文本编辑器(如nano或vim)创建一个名为的新文件。输入以下内容:```bash
#!/bin/bash
# 设置邮件服务器信息
SMTP_SERVER=""
SMTP_PORT=587
# 设置发件人信息
SENDER_EMAIL="sender@"
SENDER_NAME="Your Name"
# 设置收件人信息
RECIPIENT_EMAIL="recipient@"
# 设置邮件主题和正文
SUBJECT="Email subject"
BODY="Email body"
# 使用openssl生成随机边界
BOUNDARY=$(openssl rand -base64 32)
# 构建邮件头
HEADER="From: ${SENDER_NAME} "
HEADER+="To: "
HEADER+="Subject: ${SUBJECT}"
HEADER+="Content-Type: multipart/mixed; boundary=${BOUNDARY}"
# 构建邮件正文
TEXT_PART="--${BOUNDARY}"
TEXT_PART+="Content-Type: text/plain; charset=UTF-8"
TEXT_PART+="${BODY}"
# 构建附件(可选)
# 将附件文件路径替换为实际路径
ATTACHMENT_FILE="/path/to/"
ATTACHMENT_PART="--${BOUNDARY}"
ATTACHMENT_PART+="Content-Type: application/pdf; name="
ATTACHMENT_PART+="Content-Disposition: attachment; filename="
ATTACHMENT_PART+="Content-Transfer-Encoding: base64"
ATTACHMENT_PART+=$(base64 ${ATTACHMENT_FILE})
# 构建邮件结束符
END_PART="--${BOUNDARY}--"
# 组装邮件
MAIL_MESSAGE="${HEADER}${TEXT_PART}${ATTACHMENT_PART}${END_PART}"
# 使用smtp-cli发送邮件
smtp-cli --server ${SMTP_SERVER} --port ${SMTP_PORT} \
--user ${SENDER_EMAIL} --password ${SMTP_PASSWORD} \
--from ${SENDER_EMAIL} --to ${RECIPIENT_EMAIL} --data "${MAIL_MESSAGE}"
echo "Email sent successfully."
```

解释脚本
先决条件:设置SMTP服务器信息、发件人和收件人信息。
构建邮件头:包含发件人、收件人、主题和内容类型。
构建邮件正文:以纯文本格式包含邮件正文。
添加附件(可选):使用base64编码将文件附件添加到邮件中。
构建邮件结束符:用特殊的边界指示邮件结束。
组装邮件:将邮件头、正文、附件和结束符拼接到一个完整的邮件中。
发送邮件:使用smtp-cli命令将邮件发送到SMTP服务器。
反馈:在成功发送邮件后打印一条消息。

运行脚本

确保已修改脚本以匹配您的配置。保存文件并通过命令行运行以下命令:```bash
bash
```

如果邮件已成功发送,您将看到“Email sent successfully.”消息。

自定义脚本

该脚本可以根据您的需要进一步定制:* 更改SMTP服务器信息、发件人和收件人。
* 使用不同的内容类型(例如HTML)。
* 添加多个附件。
* 根据需要调整邮件正文。

这个Bash脚本提供了一种简单且可定制的方法,可以在Linux或基于Unix的系统上通过命令行发送电子邮件。通过了解脚本的组件和如何根据需要进行调整,您可以轻松地自动化您的电子邮件通信任务。

2024-12-05


上一篇:PyCharm 中运行 Bash 脚本:全面指南

下一篇:bash 脚本编译快速上手指南