古人智慧

Just Do it!
上士聞道,勤而行之;中士聞道,若存若亡;下士聞道,大笑之。不笑,不足以爲道。
~ 道德經 41

「實現夢想不是追逐成功,而是在於賦予生命意義,人生中的每個決定與聲音都有其重要含義。」"The key to realizing a dream is to focus not on success but on significance — and then even the small steps and little victories along your path will take on greater meaning."
電視名人-歐普拉·溫芙蕾(OPRAH WINFREY)

搜尋此網誌

Translation

2018年3月18日 星期日

[Banana Pi] send email by SMTP Server(send only)

最近做了一個追蹤美金的python code可以每天從台灣銀行下載當天的匯率製作出歷史曲線圖

《美金匯率歷史曲線圖》
把這個code放到小電腦(樹莓派香蕉派),然後自動透過email把曲線圖寄出。
好玩的唄。。。。
當然,有人肯定會說這東西早就有人做好了,為何還要ooxx。。。。
~只能說~~~我就是想做好玩學點東西,阿不然?
這篇先記錄如何在小電腦BananaPi設置email server相關步驟做個筆記,不聊到如何coding這個python爬蟲:

Step1:

設定這台小電腦的ip 與 domain name。
sudo nano /etc/hosts
在nano裡面修改

127.0.0.1 localhost.localdomain localhost
aaa.bbb.ccc.ddd your.domain.name your_machine_name
aaa.bbb.ccc.ddd 填上真實對外的ip address
your.domain.name 填上你的domain name
your_machine_name 填上你這台小電腦的名稱(在/etc/hostname裡面)

Step2:

安裝email server相關套件與config,還有uuencode做附加檔的指令。
sudo apt install mailutils 
sudo dpkg-reconfigure exim4-config
有關exim4-config就參考前人筆記(底下有參考文章),簡述幾個重點。
  1. 選擇 “internet site; mail is sent and received directly using SMTP”。
  2. “The ‘mail name’ is ….”填上domain name,也就是yourname@[xxxx.xxx.xxx] xxx的部分。
    其他都按Enter跳過

Step3:

先找個jpeg或png做個附加檔,然後用這個語法把email送出去做測試。
mail -s"title" -A attach_file receiver@email -aFrom:sender@email < email_body_file
或者

echo "write down the email body here" | mail -s"title" -A attach_file receiver@email -aFrom:sender@email
注意:每個參數都必須存在,不能省略
title: email的主旨
attach_file:要附加的檔案
receiver@email:收件人的email
sender@email: 發信人的email,可以自己杜撰的email address
email_body_file:一個文字檔,要寫在email body的文字

Step4:

設定每日固定時間把email發出。
sudo crontab -l
sudo crontab -e
-l :list 目前所有例行性工作
-e :edit 例行性工作
我先把2個工作寫成script
#!/bin/bash
python3 /home/regis/python/currency/currency_trend_v3_2.py
echo "Today USD currency" | mail -A/home/regis/python/currency/currency.png -s"USD currency" xxxxxx@xxxx.com -aFrom:regis@xxxxx.xxxx.xxx
然後,將這個script帶入例行工作
sudo crontab -e

# 
# m h  dom mon dow   command
* 10 * * * /home/regis/python/currency/cy_pic_send
設定為每天早上10點發出
就是這麼簡單,但是我搞了一整天。。。。
時間就是不夠用
~~

參考文章:

沒有留言:

張貼留言