---
# System prepended metadata

title: 使用Linux發送電子郵件
tags: [公開筆記, Linux指令]

---

# 使用Linux發送電子郵件
* 這是一篇個人筆記
## 在Linux下 使用 mailutils 中的 mail 指令將msmtp作為mailutils中的sendmail發送gmail
* 這裡將msmtp作為MTA，更精確的說是MSA(只發信，不收信)，可以用來替代的MTA，對於沒有自己的郵件伺服器來說很有用，因為可以用google 的 gmail帳號來發信

2024/08/29 紀錄
指令的紀錄，按照該步驟可正確執行
```
執行時的系統為：Ubuntu 22.04 LTS

命令版本為： 
    msmtp 1.8.16
    mail (GNU Mailutils) 3.14
```
* step_1：下載 msmtp 與 msmtp-mta
```
sudo apt-get install msmtp msmtp-mta
```
* step_2: 編輯檔案
```
nano ~/.msmtprc
```
* step_3: 對檔案 ~/.msmtprc 寫入以下內容，並將其中的「your_email@gmail.com」替換為自己的gmail，「your_password」替換為gmail對應的「應用程式密碼」(應用程式密碼不是gmail密碼，要額外去原本的google帳號中生成密碼並取得)
```
# Gmail account
account gmail
auth on
host smtp.gmail.com
port 587
from your_email@gmail.com
user your_email@gmail.com
password your_password
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

# Set default account to use
account default : gmail
```
* step_4：設定「~/.msmtprc」存取權限
```
chmod 600 ~/.msmtprc
```
* step_5: 測試電子郵件發送(將其中的「your_email@gmail.com」替換為想發送到的電子郵件)
-> 可以看到msmtp指令也可以直接用來發送電子郵件
```
echo "這是測試郵件內容" | msmtp -a gmail your_email@gmail.com
```
* step_6: 下載 mail
```
sudo apt-get install mailutils
```
* step_7: 可以透過mail發送文本中的訊息(其中「郵件主題」替換成想填寫的郵件主旨，「recipient_email@gmail.com」替換成想發送到的電子郵件，「message.txt」替換成存有想發送內容的文本檔案)
```
mail -s "郵件主題" recipient_email@gmail.com < message.txt
```

---
其他
* msmtp 中文man-page(ubuntu 22.04) https://manpages.ubuntu.com/manpages/jammy/zh_TW/man1/msmtp.1.html

