OpenWrt中文网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 28112|回复: 24
打印 上一主题 下一主题

Openwrt 使用Msmtp+mutt发邮件+139邮箱免费短信提醒

[复制链接]
跳转到指定楼层
1#
mysxl 发表于 2010-6-24 14:53:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mysxl 于 2010-6-24 14:55 编辑

安装程序
opkg update
opkg install msmtp
opkg install mutt

msmtp的配置文件


配置mutt
新建/etc/Muttrc


发送短信测试


我用的是移动的139信箱,设置免费短信邮件到达提醒,经过以上设置手机能正常收到提示,只是对中文的支持不太好。

研究这个的目的是希望能实际transmission下载完成后短信提醒,但不知道代码如何设置,看别的论坛已经有人成功实行速度监控短信提醒。
http://1073.konamicn.com/redirec ... 80&fromuid=3792

希望哪位达人能研究一下,早日实行这个功能。

还有一篇是利用飞信免费发送短信,但飞信的平台接口已升级不能用了。
http://www.baoyinet.com/bbs/viewthread.php?tid=2529

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1威望 +4 收起 理由
admin + 4

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享分享
推荐
tjpm 发表于 2010-6-24 19:45:30 | 只看该作者
自己刚才试了下用bash
bash中虽然有hash 但是取不出来key
还是不好处理的。
晚上回去用perl试试,perl应该很容易解决
===================================
#!/bin/bash
NAME=name
PASSWD=test
CURFILE=trans_list_cur #放当前没有下载好,状态不是Unkown的任务列表
LASTFILE=trans_list_last #放之前没有下载好,状态不是Unkown的任务列表
get_status() {
        if [ $# != 2 ]
                then
                        echo"function get_status need two parameter."
        else
                if [ -f $CURFILE ]
                        then
                                mv $CURFILE $LASTFILE
                fi
                transmission-remote 127.0.0.1:9091 --auth=pm:pengmin -l|\
                       tail -n +2|grep -v Sum|grep -v Done|\
                grep -v Unknown|awk '{print $1, $NF}' > $CURFILE
        fi
}
#这个函数用来把状态存到文件

get_status $NAME $PASSWD
declare -A job_list
declare -A job_last
        while read jobid  jobname
        do
                job_last[$jobid]=$jobname
        done <$LASTFILE
       
        while read jobid jobname
        do
                unset job_last[$jobid] #把目前还在下载的 从关联数组里删除了,这样就剩下两时间段间完成的任务
        done <$CURFILE
       
        new_done_num=${#job_last[@]} #可以获取新完成任务数
        echo "new done= $new_done_num"
=================================================
很久没有用bash和perl了,得回去有本书参考语法才能节省时间点。

评分

参与人数 1威望 +3 收起 理由
admin + 3

查看全部评分

2#
admin 发表于 2010-6-24 14:59:32 | 只看该作者
很有意思的探索。应该不难实现,希望能写脚本的朋友实现一下。
3#
a8711531 发表于 2010-6-24 15:01:11 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
4#
 楼主| mysxl 发表于 2010-6-24 15:30:49 | 只看该作者
建议直接在Bt功能上加多一个完成 邮件提示就行了。填上邮箱就可以提示


只要手机邮箱设置好短信提示一 ...
a8711531 发表于 2010-6-24 15:01



    邮箱里查看是没有问题,接收到手机上就变成乱码了。
5#
tjpm 发表于 2010-6-24 17:50:35 | 只看该作者
编码问题吧

邮箱里查看是没有问题,接收到手机上就变成乱码了。
mysxl 发表于 2010-6-24 15:30
6#
tjpm 发表于 2010-6-24 18:05:34 | 只看该作者
#!/bin/sh

COMMAND="transmission-remote 127.0.0.1:9091 --auth=root:toor"
MAILADDRESS="hahaha@yeah.com"
LIMIT=50

if [ $(ps|grep transmission-daemon|wc -l) -le 1 ]; then
  exit 0
fi

for time in 10 30 60
do
  DOWNSPEED=$($COMMAND -l|grep Sum|awk {'print $5'}|awk -F . {'print $1'})
  if [ $DOWNSPEED -gt $LIMIT ]; then
    exit 0
  fi
  sleep $time
done

$COMMAND -l | grep -v Stopped > /tmp/transwatchlist.tmp
nail -s "Transmission running on low speed: $DOWNSPEED" $MAILADDRESS </tmp/transwatchlist.tmp
看了下那个链接里的脚本

用transmission-remote 127.0.0.1:9091 --auth=name:passwd -l 来获取当前状态吧

要用脚本的话最好是用perl或者bash,ash的功能太有限了不好弄。

很有意思的探索。应该不难实现,希望能写脚本的朋友实现一下。
admin 发表于 2010-6-24 14:59
7#
tjpm 发表于 2010-6-24 19:45:26 | 只看该作者
自己刚才试了下用bash
bash中虽然有hash 但是取不出来key
还是不好处理的。
晚上回去用perl试试,perl应该很容易解决
===================================
#!/bin/bash
NAME=name
PASSWD=test
CURFILE=trans_list_cur #放当前没有下载好,状态不是Unkown的任务列表
LASTFILE=trans_list_last #放之前没有下载好,状态不是Unkown的任务列表
get_status() {
        if [ $# != 2 ]
                then
                        echo"function get_status need two parameter."
        else
                if [ -f $CURFILE ]
                        then
                                mv $CURFILE $LASTFILE
                fi
                transmission-remote 127.0.0.1:9091 --auth=pm:pengmin -l|\
                       tail -n +2|grep -v Sum|grep -v Done|\
                grep -v Unknown|awk '{print $1, $NF}' > $CURFILE
        fi
}
#这个函数用来把状态存到文件

get_status $NAME $PASSWD
declare -A job_list
declare -A job_last
        while read jobid  jobname
        do
                job_last[$jobid]=$jobname
        done <$LASTFILE
       
        while read jobid jobname
        do
                unset job_last[$jobid] #把目前还在下载的 从关联数组里删除了,这样就剩下两时间段间完成的任务
        done <$CURFILE
       
        new_done_num=${#job_last[@]} #可以获取新完成任务数
        echo "new done= $new_done_num"
=================================================
很久没有用bash和perl了,得回去有本书参考语法才能节省时间点。
9#
killer2001 发表于 2010-6-24 19:54:45 | 只看该作者
请问怎么把图片作为附件发出去啊?
如果只是文字提醒,只需msmtp就可以了啊,不需要mutt。
10#
 楼主| mysxl 发表于 2010-6-24 21:01:18 | 只看该作者
这里牛人很多啊,期待中……
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|OpenWrt中文门户. ( 湘ICP备10006320号

GMT+8, 2024-4-24 03:05 , Processed in 0.079523 second(s), 40 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表