X86版:

{
  local ipaddr
  local pppoename "pppoe-out1"
  local smtps "smtp.exmail.qq.com"
  local ports "25"
  local Mailings "xxx@xxx.com"    #发送的邮箱
  local pass "xxx"
  local recipient "xxx@qq.com"    #接收的邮箱
  local mailuser "xxx@xxx.com"    #发送邮箱用户名
  local Collection "路由提醒<xxx@xxx.com>"    #发送邮箱名称,那个中文可以自己改
  local Contents "你路由器最新公网IP地址是:"
  local Themes "路由外网IP变更通知^_^"
  local content "你路由器最新信息如下:"
  local smtp [:resolve $smtps]
  global lastip
  global rosversion ("你的路由器版本是: MikroTik v" . [/system resource get version] )
  global rosboard ("你的路由器型号是: " . [/system resource get board] )
  :set ipaddr [/ip address get [/ip address find interface=$pppoename] address]
  :set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]
  :if ($ipaddr != $lastip) do={
    :set lastip $ipaddr
    /tool e-mail set address=$smtp port=$ports from=$Collection user=$mailuser password=$pass
    /tool e-mail send to=$recipient from=$Collection subject=$Themes body=("$contentn$rosboardn$rosversionn$Contents$lastip")
    :log warning "get wan ip from $pppoename:$ipaddr"
    :log warning "Sends current info to Email:$recipient"
  } else={
  }
}

正版ROS路由器版:

{
  local ipaddr
  local pppoename "pppoe-out1"
  local smtps "smtp.exmail.qq.com"
  local ports "25"
  local Mailings "xxx@xxx.com"    #发送的邮箱
  local pass "xxx"
  local recipient "xxx@qq.com"    #接收的邮箱
  local mailuser "xxx@xxx.com"    #发送邮箱用户名
  local Collection "路由提醒<xxx@xxx.com>"    #发送邮箱名称,那个中文可以自己改
  local Contents "你路由器最新公网IP地址是:"
  local Themes "路由外网IP变更通知^_^"
  local content "你路由器最新信息如下:"
  local smtp [:resolve $smtps]
  global lastip
  global rosversion ("你的路由器版本是: MikroTik v" . [/system resource get version] )
  global rosboard ("你的路由器型号是: " . [/system resource get board] )
  global cloud ("你的路由器云域名是: " . [/ip cloud get dns] )
  :set ipaddr [/ip address get [/ip address find interface=$pppoename] address]
  :set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]
  :if ($ipaddr != $lastip) do={
    :set lastip $ipaddr
    /tool e-mail set address=$smtp port=$ports from=$Collection user=$mailuser password=$pass
    /tool e-mail send to=$recipient from=$Collection subject=$Themes body=("$contentn$rosboardn$rosversionn$Contents$lastipn$cloud")
    :log warning "get wan ip from $pppoename:$ipaddr"
    :log warning "Sends current info to Email:$recipient"
  } else={
  }
}

有朋友反馈中文提醒邮件标题在苹果设备上乱码,解决办法如下:

这需要指定邮件标题编码,方法是首先将中文邮件标题用Base64进行编码成字符串,
然后在此标题字符串前添加   =?UTF-8?B?
在其最后添加  ?=

例如上面的标题可改为:
local Themes "=?UTF-8?B?6Lev55Sx5aSW572RSVDlj5jmm7TpgJrnn6VeX14=?="

这样在全平台就可识别成中文了
Base64在线编解码站点推荐:
站长之家tool#chinaz#com/Tools/Base64.aspx自行把#改为.

效果如下:
X86版

ROS外网IP变更邮件通知汉化版 Mikrotik-ROS 第1张

 

正版ROS路由

ROS外网IP变更邮件通知汉化版 Mikrotik-ROS 第2张

参与评论

  • duoduo用户
    升级到7.1的routeros cloud版本,脚本不能用了,也不报错,很费解。同样脚本自己的网络环境里6.4.8的x86版就没问题。
    6月前 (01-02)
    1楼
    回复