iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
DevOps

運用皮毛技術與 AWS 平台、打造雲端蘿蔔服務三十天系列 第 13

【Day 13】顏立委:希望你們都學會,如何透過 SMTP 發信!

tags: 鐵人賽 SMTP gmail 中部粽

前情提要

  • 昨天,我們一邊執行程式碼、一邊產生 log
  • 執行片刻後,便呼叫寄信程式片段,透過登入 SMTP 以我的 Gmail 做一個送信的動作
  • 對於 DevOps 工程師而言,透過程式運作的 log 進行除錯是非常重要的,但是有時候難保 log 遺失或者是手邊沒有方便登入環境查看的窘境。
  • 因此透過 Email 來保留 log 就顯得十分重要(或許是對我個人啦)

如果哪天被做成粽子的話,這篇可能會有幫助... 朱立倫X顏寬恒 消坡塊上深情對唱「聽海 」│ 聽海 cover│張惠妹│

SMTP 發信功能

  • 要達到 SMTP 發信的功能,有兩種簡單的途徑
    1. 直接開啟 Gmail 的 SMTP 功能
      • 優點:簡單快速
      • 缺點:收件者會看到我的私人信箱欸?
    2. Amazon Simple Email Service
      • 優點:可以透過私有的、自己買的、公司買的網域名稱,作為發信的信箱
      • 缺點:要錢、設定稍微麻煩、要有自己的域名、可能要花到 48 小時申請離開沙盒、詐騙猖獗可能會被不肖業者濫用發釣魚信
  • 基於省錢省力原則,我們先方案一

我今天原本標題是 【Day 13】透過 SMTP 收信和發信!
但是今天我的馬車快要變南瓜了,各位請原諒我 >"<

老高上身:以後專做一集給大家講這個 SES

取得 Gmail SMTP 登入金鑰

  1. 為了實現寄信功能,我們要先取得自己信箱的登入金鑰。因此需要先進到 Google 帳號管理頁面,選擇 安全性,開啟「兩步驟驗證」
  2. 接著,申請一組「應用程式密碼」;若您沒開啟「兩步驟驗證」,您將不會看到這個選項。
  3. 依照下圖方式選擇密碼所允許的裝置或程式。這邊選擇「其他(自訂名稱)」
  4. 幫應用程式取名
  5. 您將得到信箱的登入密碼,請妥善保管勿外流(長度16碼)。

帶入程式

  1. 請先參考原始碼連結
  2. 這個檔名我把它取名成 mail.ini.example 是因為,我使 mail.ini 被排除在版本控制之外,以避免外流機敏資訊。 所以如果你要使用的話,請將 mail.ini.example 改名成 mail.ini使得 MailSender 可以讀取到

結論

  • 程式會發信,真的是超棒的!(燦笑摸頭

上一篇
【Day 12】使用 Systems Manager 的 Parameter Store 保存變數
下一篇
【Day 14】海綿寶寶的神奇海螺:對 AWS 發出 Support
系列文
運用皮毛技術與 AWS 平台、打造雲端蘿蔔服務三十天30

尚未有邦友留言

立即登入留言