---
title: "Aria2 下载完毕自动邮件通知"
description: "为 Aria2 配置下载完成后的自动邮件通知，通过 sendmail 和自定义脚本发送包含文件路径和系统信息的通知"
canonical_url: https://ro.yikzero.com/blog/aria2-1/
locale: zh-CN
date: 2020-02-09
---

# Aria2 下载完毕自动邮件通知

## 前言

由于本人没啥代码基础，从来没学过代码这方面知识，所以表述各方面可能不是很准确。这个脚本是我在下载电影的时候想到的。现在社会都在实现智能化，所以，我也就想折腾下，搞一个邮件下载通知。

## 截图

![Email 截图](https://cdn.yikzero.com/markdown/images/202311050924340.png)

## 邮件系统搭建

安装调试的时候碰到过挺多问题的，但搜索了一下。按照这位博主[操作记录](https://www.cnblogs.com/kevingrace/p/6143977.html)，配合宝塔一般都可以成功配置，自己多测试几遍。

## 脚本的寻找与修改

我先是在[恩山无线论坛](https://www.right.com.cn/forum/thread-163098-1-1.html)找到了一篇楼主修改过的用来通知的脚本。

该作者提供的脚本里，邮件什么的都是填上就好，但是我当时`sendmail`命令出现了一些问题，然后就跟着第一部分的记录走了，一些脚本的东西，我已经写入服务器了，所以，改了很多原来脚本的东西。

我用作者的脚本调试的时候`aria2.log`中一直会出现 `no such file or directory`这个问题 但是找不到原因所在。然后我就想全部脚本都用`管道`来写。。好像有点笨。。但不会其他方法了。

```shell
echo "

文件路径：$3

完成时间 `date +%Y/%m/%d`  `date +%T`

负载 "`uptime`"

版本 "`uname -a`"

From Zero.

Have a nice day." | mail -s 'Aria2通知' example@qq.com
```

这就是我的脚本内容了，很简单是吧。。但我其实操作了好久，才弄出来一个能用的， `Aria2通知` 是邮件的标题，具体的参数含义在第一部分的文章链接里应该都能找到。

## 最后的调试

具体步骤：

1. 将`email.sh`脚本上传到服务器
2. 修改`aria2.conf`里面的`on-download-complete=`参数，`=`后面填写脚本`绝对地址`

为了同时实现：

- 邮件通知
- 自动上传

我是在 `autoupload.sh` 脚本 中来调用`email.sh`

具体写法：

```shell
. /root/.aria2/email.sh
```

我的`Aria2`是用的 [Aria2 一键安装管理脚本](https://github.com/P3TERX/aria2.sh)

## 结尾

这个脚本我自己也不太满意，虽然能实现基本功能，但是存在这几个**问题**

1. 一次下载会发两封邮件，因为种子下载完成一封邮件，文件下载完成一封邮件。
2. 我不懂语法，尝试过`basename`、`##/`什么的，但是我尝试挺久没成功获取文件名。

**第一次写文章，排版什么的都不会，还挺啰嗦。但是挺好玩的。**