Công cụ Python không phụ thuộc cho phép bạn gửi email từ dòng lệnh bằng Gmail SMTP. Cài đặt bằng một lệnh duy nhất, định cấu hình một lần và gửi email từ tập lệnh, quy trình tự động hóa hoặc tác nhân AI.
Vấn đề
Gửi email từ dòng lệnh theo truyền thống là một việc khó khăn:
- Thiết lập phức tạp: Định cấu hình sendmail, postfix hoặc msmtp yêu cầu thay đổi cấp hệ thống
- Vấn đề về khả năng cung cấp: Máy chủ thư tự lưu trữ thường rơi vào thư mục thư rác
- Phân mảnh nền tảng: Các công cụ khác nhau cho các hệ điều hành khác nhau
- Địa ngục phụ thuộc: Nhiều giải pháp yêu cầu cài đặt thêm thư viện
Tôi cần một cách đơn giản để gửi email từ các tập lệnh tự động hóa, tác nhân AI và quy trình CI/CD mà không cần phải vật lộn với cấu hình máy chủ thư. Máy chủ SMTP của Gmail có khả năng gửi tuyệt vời và Mật khẩu ứng dụng cung cấp xác thực an toàn mà không làm lộ mật khẩu tài khoản chính của bạn.
Giải pháp
gmail-cli là một tệp Python duy nhất không có phần phụ thuộc bên ngoài, hoạt động trên mọi hệ thống có Python 3. Nó sử dụng máy chủ SMTP của Gmail để phân phối đáng tin cậy và lưu trữ thông tin xác thực một cách an toàn trong thư mục chính của bạn.
Cài đặt một dòng
macOS / Linux
curl -sSL https://colinknapp.com/tools/gmail-cli/install.sh | bash
Windows PowerShell
iwr -useb https://colinknapp.com/tools/gmail-cli/install.ps1 | iex
Trình cài đặt tải tập lệnh xuống ~/.local/bin (Unix) hoặc %LOCALAPPDATA%\gmail-cli (Windows) và thêm nó vào PATH của bạn.
Thiết lập: Mật khẩu ứng dụng Gmail
Gmail yêu cầu Mật khẩu ứng dụng để truy cập SMTP (mật khẩu thông thường của bạn sẽ không hoạt động khi bật 2FA). Đây là cách thiết lập một:
- đi đến myaccount.google.com/apppasswords
- Bật Xác minh 2 bước nếu bạn chưa bật
- Tạo mật khẩu ứng dụng cho "Thư"
- Chạy
gmail-cli configurevà nhập địa chỉ Gmail của bạn và Mật khẩu ứng dụng
gmail-cli configure
Gmail CLI Configuration
----------------------------------------
You'll need a Gmail App Password:
1. Go to https://myaccount.google.com/apppasswords
2. Enable 2-Step Verification if needed
3. Generate an App Password for 'Mail'
Gmail address: yourname@gmail.com
App Password (will be stored locally): xxxx xxxx xxxx xxxx
Configuration saved to /home/user/.config/gmail-cli/config.json
Ví dụ sử dụng
Email đơn giản
gmail-cli send recipient@example.com -s "Hello" -b "Hi there!"
Email có tệp đính kèm
gmail-cli send recipient@example.com \
-s "Weekly Report" \
-b "Please find the report attached." \
-a report.pdf \
-a data.csv
Nội dung ống từ stdin
cat logfile.txt | gmail-cli send admin@example.com -s "Server Logs"
Kiểm tra kết nối
gmail-cli test
Testing connection for yourname@gmail.com...
Success! Connection and authentication working.
Trường hợp sử dụng trong thế giới thực: Email của đại lý AI
Tôi đã xây dựng công cụ này đặc biệt để sử dụng với các tác nhân mã hóa AI như Cursor. Khi tôi cần gửi email có tệp đính kèm PDF, tác nhân AI có thể soạn và gửi trực tiếp:
gmail-cli send recipient@example.com \
-s "Documents Attached" \
-b "Hi,
Please find the requested documents attached.
Best regards,
Your Name" \
-a document1.pdf \
-a document2.pdf
Điều này cho phép tự động hóa từ đầu đến cuối: AI có thể tạo tài liệu, tạo tệp PDF và gửi chúng qua email mà không cần sự can thiệp của con người.
Triển khai kỹ thuật
Kiến trúc
- Tập tin duy nhất: Không có sự phụ thuộc nào ngoài thư viện chuẩn của Python 3
- SMTP qua TLS: Kết nối an toàn tới smtp.gmail.com:587
- Cấu hình cục bộ: Thông tin xác thực được lưu trữ trong
~/.config/gmail-cli/config.jsonvới 600 quyền - Hỗ trợ MIME: Thông báo nhiều phần thích hợp cho tệp đính kèm
Cân nhắc về bảo mật
- Sử dụng Mật khẩu ứng dụng Gmail (không phải mật khẩu chính của bạn)
- Tệp cấu hình có quyền hạn chế (Unix: 600)
- Mã hóa TLS cho tất cả giao tiếp SMTP
- Mật khẩu ứng dụng có thể bị thu hồi riêng lẻ mà không ảnh hưởng đến tài khoản chính của bạn
Hỗ trợ đa nền tảng
Công cụ này tự động xử lý những khác biệt về nền tảng:
- macOS/Linux: Cấu hình trong
~/.config/gmail-cli/, được cài đặt vào~/.local/bin/ - Windows: Cấu hình trong
%APPDATA%\gmail-cli\, được cài đặt vào%LOCALAPPDATA%\gmail-cli\với trình bao bọc .bat
Tham chiếu lệnh
| Lệnh | Mô tả |
|---|---|
gmail-cli configure |
Thiết lập thông tin đăng nhập Gmail (tương tác) |
gmail-cli configure --email x --password y |
Đặt thông tin xác thực không tương tác |
gmail-cli send TO -s SUBJ -b BODY |
Gửi email |
gmail-cli send TO -s SUBJ -a FILE |
Gửi kèm theo (các) tệp đính kèm |
gmail-cli test |
Kiểm tra kết nối SMTP |
gmail-cli config |
Hiển thị cấu hình hiện tại |
Tích hợp với Tự động hóa
gmail-cli hoạt động trơn tru với:
- Tập lệnh Shell: Gửi thông báo từ công việc định kỳ hoặc xây dựng tập lệnh
- Đường ống CI/CD: Báo cáo triển khai email hoặc kết quả kiểm tra
- Đại lý AI: Cho phép các trợ lý được hỗ trợ bởi LLM gửi email thay mặt bạn
- Giám sát: Cảnh báo về các sự kiện hệ thống hoặc vi phạm ngưỡng
Ví dụ: Báo cáo sao lưu hàng ngày
#!/bin/bash
# backup-report.sh - Run daily via cron
BACKUP_LOG="/var/log/backup.log"
RECIPIENT="admin@example.com"
if [ -f "$BACKUP_LOG" ]; then
cat "$BACKUP_LOG" | gmail-cli send "$RECIPIENT" \
-s "Daily Backup Report - $(date +%Y-%m-%d)"
fi
Tại sao không sử dụng các công cụ hiện có?
| Thay thế | vấn đề |
|---|---|
| gửi thư/hậu tố | Yêu cầu root, cấu hình phức tạp, các vấn đề về khả năng phân phối |
| msmtp | Phụ thuộc bên ngoài, cú pháp tệp cấu hình |
| thư/thư | Nền tảng cụ thể, yêu cầu MTA cục bộ |
| Python smtplib trực tiếp | Mã soạn sẵn, không có giao diện CLI |
gmail-cli mang đến sự đơn giản của công cụ CLI cùng với độ tin cậy của cơ sở hạ tầng của Gmail, được bao bọc trong gói không phụ thuộc, hoạt động ở mọi nơi Python chạy.
Quan sát
- Cài đặt một lớp hoạt động: các
curl | bashmô hình, mặc dù còn gây tranh cãi, làm giảm đáng kể sự xung đột đối với các công cụ dành cho nhà phát triển - Gmail SMTP đáng tin cậy: Máy chủ của Google có khả năng gửi và thời gian hoạt động tuyệt vời
- Mật khẩu ứng dụng được đánh giá thấp: Họ cung cấp quyền truy cập có phạm vi mà không làm lộ thông tin xác thực chính của bạn
- Vấn đề đa nền tảng: Một công cụ hoạt động giống hệt nhau trên macOS, Linux và Windows giúp tiết kiệm tài liệu và nỗ lực hỗ trợ
- Đại lý AI cần email: Khi tính năng tự động hóa do LLM phát triển, email có lập trình đơn giản ngày càng trở nên có giá trị
Get Started
Cài đặt gmail-cli và bắt đầu gửi email từ thiết bị đầu cuối của bạn:
# Install (macOS/Linux)
curl -sSL https://colinknapp.com/tools/gmail-cli/install.sh | bash
# Configure
gmail-cli configure
# Send your first email
gmail-cli send yourself@gmail.com -s "Test" -b "It works!"