1:脚本代码
#!/bin/bash
# 配置参数
api_key="YOUR_API_KEY"
list_id="YOUR_LIST_ID"
subject="YOUR_EMAIL_SUBJECT"
from_name="YOUR_FROM_NAME"
from_email="YOUR_FROM_EMAIL"
template_id="YOUR_TEMPLATE_ID"
# 获取营销信息
marketing_info=$(curl -s "http://example.com/marketing" | sed 's/"/\\\"/g')
# 构建推送邮件的JSON数据
json_data="{
\"key\": \"$api_key\",
\"message\": {
\"subject\": \"$subject\",
\"from_name\": \"$from_name\",
\"from_email\": \"$from_email\",
\"to\": {
\"list_id\": \"$list_id\"
},
\"global_merge_vars\": [
{
\"name\": \"marketing_info\",
\"content\": \"$marketing_info\"
}
],
\"template\": {
\"id\": \"$template_id\",
\"name\": null,
\"content\": null
},
\"async\": false
}
}"
2: 参数详解
- 配置参数:您需要将其中的api_key、list_id、subject、from_name、from_email、template_id等参数替换为您自己的值。
- 获取营销信息:在这里,我们通过curl命令获取营销信息,并使用sed命令将双引号转义为"。这是因为我们将要将营销信息作为JSON数据的一部分发送,而需要将双引号转义以避免JSON格式错误。
- 构建JSON数据:我们使用bash的字符串拼接功能,构建一个包含所有必需信息的JSON数据。
- 发送邮件:使用curl命令向Mandrill API发送JSON数据,以便将推送邮件发送给订阅列表中的所有人。
# 使用curl发送邮件
curl -s -X POST \
-H "Content-Type: application/json" \
-d "$json_data" \
//
"https://xxx.com/api/1.0/messages/send-template.json"
3: 配置crontab
- 打开cron定时任务配置文件:
crontab -e
- 在文件末尾添加以下行:
0 2 * * * /path/to/your/script.sh
,其中/path/to/your/script.sh替换为您实际的脚本文件路径。这将使脚本每天早上2点执行一次。 - 保存并关闭文件即可。