gmail-cli: Email đa nền tảng từ dòng lệnh

Vai trò: Nhà phát triển

Công nghệ: Python 3, Gmail SMTP, CLI đa nền tảng

Nền tảng: macOS, Linux, Windows

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:

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:

  1. đi đến myaccount.google.com/apppasswords
  2. Bật Xác minh 2 bước nếu bạn chưa bật
  3. Tạo mật khẩu ứng dụng cho "Thư"
  4. Chạy gmail-cli configure và 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

Cân nhắc về bảo mật

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:

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:

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

  1. Cài đặt một lớp hoạt động: các curl | bash mô 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
  2. 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
  3. 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
  4. 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ợ
  5. Đạ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!"