以真實世界寄信來比喻,理解電子郵件寄送流程

因為我最近在開發寄信系統,因此理解電子郵件寄送的流程和原理是很重要的,為了方便理解,所以我會用真實世界中我們去郵局寄信來比喻電子郵件的寄送流程,這麼做是為了幫助理解,所以比喻那部分很難做到 100% 完全和技術細節對齊 用真實世界在郵局寄信,理解電子郵件寄送的流程 圖片取自: 維基百科 為了更好地理解電子郵件的寄送過程,我們可以把它比作郵局寄信的過程。假設 Alice 給 Bob 寫了一封感謝信,然後她將信件帶到郵局處理寄信手續。接下來,我們來看看具體過程: 創建信件 郵局寄信: Alice 寫好感謝信,裝進信封,寫上寄件人和收件人的地址,貼上郵票。 電子郵件: 你在郵件客戶端 (例如: Outlook、Gmail) 或透過 API 建立一封郵件,內容包含寄件人 (例如: alice@example.tw) 、收件人 (例如: bob@demodomain.tw) 、主題、內文及其他可能的附件。 信件寄送 郵局寄信: Alice 把信帶到郵局,然後找郵局的櫃台人員。 電子郵件: 當你點擊「寄送」後,郵件客戶端會將這封郵件交給寄件人的郵件伺服器,稱為 SMTP 伺服器 (Simple Mail Transfer Protocol) 。 SMTP 伺服器處理 郵局寄信: 郵局的櫃台人員會檢查地址是否正確,然後進行分類。 電子郵件: 寄件人的 SMTP 伺服器會驗證寄件人的身份,檢查信件格式是否正確,並根據收件人的域名 (例如: demodomain.tw) 查找相應的 MX 記錄 (Mail Exchange) 來確定收件人的郵件伺服器位置。 像如果對方沒有設定 MX Record,寄信過去就會出現以下 ERROR,找不到對應的 MX Record DNS 查詢 郵局寄信: 郵局櫃台人員會根據地址查找對應郵遞區號。 電子郵件: 寄件人的 SMTP 伺服器會透過 DNS (Domain Name System) 查詢收件人域名的 MX 記錄,以獲取負責接收郵件的伺服器的 IP 位址。 信件傳輸...

August 8, 2024 · 1 min

從 AWS SES 轉寄信件無法正確顯示內嵌圖片談起:MIME 內嵌圖片原理與實踐

我遇到了什麼問題 最近我用 SES, S3, Lambda 開發了轉寄信件的功能,簡單介紹一下這功能: 假設我就職於公司的開發部門,我們對外有一個信箱是 dev@example.com 當客戶遇到軟體開發上的問題時寄信到 dev@example.com,開發部門的所有同仁就會在自己的信箱收到此客戶寄來的電子郵件,重點是開發部門的同仁們都可以用自己的帳號回覆該客戶 而開發好這功能後,我遇到一個問題 — 轉寄出去的信件沒辦法正確顯示內嵌圖片 關於轉寄信件的程式碼我放在 GitHub 上囉 (連結),之後有時間會寫一篇 Forward Email 的完整教學,或是也可以關注我的 Notion,我每天都會寫筆記記錄自己的學習過程 讓我們直接看例子 首先,我登入私人帳號模擬我是客戶,寄信給 test@aws-educate.tw,下圖是當時寄出去的內容: 寄給 test@aws-educate.tw 後,SES 會收到信,然後根據我配置的 Receipt rule,原始郵件檔案會被儲存至我指定的 S3 Bucket 延續 用 SES, S3, Lambda 實現轉寄信件功能 ,當我嘗試在轉寄出去的信件中內嵌圖片,最後收到轉寄來的信,都會出現下圖的現象:圖片沒辦法內嵌在裡面,倒是跑去附件了 寫文章時,已經把原本轉寄過來的信件刪了,所以下圖信件主旨跟前一張圖片不一樣不要介意,下圖信件已經詮釋我想表達的現象了 XD 我起初嘗試的解法 後來下面這篇 Stack Overflow,裡面有人提到 Gmail 還不支援顯示 base64 編碼的圖片 (有待確認,希望有人可以告訴我正確答案) As of January 2020, Gmail still does not support base64 encoded images. Source: Add embedded image in emails in AWS SES service...

August 6, 2024 · 2 min

AWS Internet Gateway vs NAT Gateway 及使用心得分享

在準備 SAA 的過程中,我覺得最難的部分就是網路,這篇文章主要先介紹一下 IGW 和 NAT Gateway 的差異,接著介紹一些使用心得。 另外分享一下活動,最近我們大使推出了一個「證照陪跑計畫」,可以透過這個活動拿到 50% 折價券、AWS 贈品、考照學習資源以及加入 DC 社群,一直招募到 2024/04/28,有興趣的讀者可以來報名!(報名表單連結) Internet Gateway (IGW) IGW 是一種允許 VPC 與 Internet 之間通訊的 VPC 組件。它能讓 VPC 內的資源如 EC2 Instance 直接訪問 Internet,同時也能讓 Internet 上的使用者訪問 VPC 內的資源。 主要功能包括: 雙向通訊支持:允許配有 Public IP 的 Instance 訪問 Internet,同時也能接收來自 Internet 的數據。 高度的可靠性和擴展性:確保無需用戶干預即可維持服務的持續可用。 NAT Gateway NAT Gateway 是一種網路地址轉換服務,允許 Private Subnet 中的 Instance 連接到 VPC 外部的服務,同時阻止外部服務主動連接這些實例。這種設計特別適合需要訪問 Internet 但不需要從 Internet 接受直接訪問的敏感或保密環境。 NAT Gateway 價錢: NAT Gateway 收費 = NAT Gateway 開啟時間 USD 0....

April 21, 2024 · 1 min