0

我创建了一个脚本,以便接收带有我的 macbookpro 的 wan ip 信息和 GPS 位置的邮件。脚本的内容是这样的:


#!/bin/bash
# -*- ENCODING: UTF-8 -*-

if [ ! -e /tmp/ip ]; then
  curl -s icanhazip.com > /tmp/ip
fi
curl -s icanhazip.com > /tmp/ip2
newip=$(diff /tmp/ip /tmp/ip2 | wc -l)
if [ $newip -ne 0 ]; then 
  mv -f /tmp/ip2 /tmp/ip
  date > IPlog.txt
  curl -s icanhazip.com >> IPlog.txt
  sudo ./Downloads/whereami >> IPlog.txt
  mailx mymailadress@mail.com < IPlog.txt
  rm IPlog.txt  
else 
  rm /tmp/ip2 
fi

系统每分钟都会执行此脚本,以验证 wan ip 是否已更改。如果它发生了变化,脚本会向我发送一封包含新信息的邮件。问题是:

1.- 邮件并不总是正确发送。有时我不接受它。

2.- 邮件不包含所有信息。有时它只包括新的 wan ip 地址。

3.- 有时邮件被认定为垃圾邮件,我不知道为什么,因为发件人总是同一个地址。

4

1 回答 1

0

我有一些建议来调试您的问题。

首先,您应该使用与 tmp 不同的位置来存储 ip。如果您的系统在启动时擦除了您的 tmp 文件夹,并且您的系统在启动后获得了一个新的 WAN ip,那么您将丢失之前记录的 ip。

使用 . 发送时检查 mailx 的退出代码$?。0 没问题。你可以做一个while循环并继续尝试发送它,直到你得到退出代码0。

您可以将邮件的信息添加到本地变量而不是文件中。

IPLog=`date`
IPLog+=`curl -s icanhazip.com`

垃圾邮件问题可能是由于邮件中的 IP 地址造成的。或./Downloads/whereami添加到文件中的任何内容。将发送电子邮件地址添加为受信任的发件人可能会这样做。

检查电子邮件标题以获取有关垃圾邮件分数的信息。

于 2015-10-23T19:15:12.650 回答