Help us understand the problem. What is going on with this article?

ラズパイ起動後にIPをメールで自動送信

More than 1 year has passed since last update.

ラズパイ起動後にIPをメールで送信

最初はGmailでやろうと思ったんですけど、セキュリティ的に弾かれたので別の方法にしました。

また、ここではメールの送信サーバをインストールしてやってますが、めんどくさかったので、送信専用のウェブページ作って、そこをpythonで自動的に送信させよう。(どっちがめんどくさいかは考えない)
http://raspi.seesaa.net/article/421958492.html

実際は下記になります。

流れ

  1. 送信用メールフォームのあるwebページを作る
  2. そのページからメールを送るようなpythonプログラムを作る
  3. ラズパイからそのプログラムを自動で実行するよう設定する

メール送信するページ作成

どこかで作ったやつをそのまま持ってきました。

index.html
<html>
<body>
    <form id="campaign" name="campaign" action="confirm.php" type="post" method="post">
        <p><input type="text" name="ip" id="ip"/></p>
        <input type="submit" value="SUBMIT" />
    </form>
</body>
</html>

confirm.php
<?php
    mb_language("Japanese");
    mb_internal_encoding("UTF-8");
    $to      = 'メールアドレス';
    $subject = 'Raspberrypi IP address';
    $ip=htmlspecialchars($_POST["ip"]);
    $message = $ip;
    $headers = 'From:'. $email . "\r\n";
    mb_send_mail($to, $subject, $message, $headers);
?>

ここのURLをhttp://autosendmail.com とします

ラズパイの自動化設定

/home/pi/lxsession/LXDE-pi/autostart
上記ファイルの一番下にこれを追加(ラズパイのOSによって異なると思うので、適宜ググってください。)
@python /パス/autosend.py

ちなみにautosend.pyの中身。

autosend.py
import netifaces
import mechanize

myip = []

def detectip():
    for iface_name in netifaces.interfaces():
        iface_data = netifaces.ifaddresses(iface_name)
        ip_adressList = iface_data.get(netifaces.AF_INET)
        if ip_adressList != None:
            ip_address = ip_adressList[0]['addr']
            myip.append(ip_address)
    return myip

def sendmail():
    br = mechanize.Browser()
    br.open("http://autosendmail.com")
    br.select_form(nr=0)
    br["ip"] = str(detectip())
    br.submit()

if __name__ == "__main__":
    sendmail()

結果

ss.jpg

少し余計なものも来てますが、十分ですのでこのままいく!

以上です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした