可在Mac终端通过四种方法发送测试邮件:一、配置系统Postfix为SMTP中继;二、用swaks工具调试SMTP;三、运行Python脚本调用smtplib;四、用curl调用Mailgun API。

如果您希望在Mac系统中通过终端命令行发送测试邮件,需要先配置SMTP服务器参数。以下是实现此功能的多种方法:
一、使用mail命令配合本地Postfix服务
macOS内置Postfix邮件传输代理,可将其配置为通过外部SMTP中继(如Gmail或Outlook)发送邮件。该方法无需额外安装软件,依赖系统默认服务。
1、启用并启动Postfix服务:
在终端中执行 sudo launchctl load -w /System/Library/LaunchDaemons/org.postfix.master.plist。
2、编辑Postfix主配置文件:
运行 sudo nano /etc/postfix/main.cf,添加以下行:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/cert.pem
relayhost = [smtp.gmail.com]:587
3、创建SASL密码映射文件:
执行 sudo nano /etc/postfix/sasl_passwd,输入格式为:
[smtp.gmail.com]:587 your_email@gmail.com:your_app_password
4、生成哈希数据库并重载配置:
依次运行 sudo postmap /etc/postfix/sasl_passwd 和 sudo postfix reload。
5、发送测试邮件:
使用命令 echo "Test body" | mail -s "Test Subject" recipient@example.com。
二、使用swaks工具发送SMTP邮件
swaks(Swiss Army Knife for SMTP)是专为SMTP调试设计的命令行工具,支持完整SMTP会话控制与认证,适合复杂场景验证。
1、通过Homebrew安装swaks:
运行 brew install swaks(若未安装Homebrew,请先执行官方安装脚本)。
2、使用Gmail SMTP发送测试邮件:
执行命令 swaks --to recipient@example.com --from your_email@gmail.com --server smtp.gmail.com:587 --auth-user your_email@gmail.com --auth-password your_app_password --tls --header "Subject: Test via swaks"。
3、添加正文内容:
追加 --body "This is a test email sent from macOS terminal." 到上述命令末尾。
4、验证响应状态:
观察终端输出中的 250 OK 行,确认邮件已成功接受投递。
三、使用Python脚本调用SMTP库发送邮件
利用Python内置smtplib和email模块构造标准SMTP请求,适用于需嵌入逻辑或批量发送的场景,不依赖系统邮件服务。
1、确保系统已安装Python 3:
运行 python3 --version 验证版本不低于3.6。
2、创建脚本文件:
执行 nano send_test.py,写入以下内容:
import smtplib
from email.mime.text import MIMEText
msg = MIMEText("Test email body")
msg["Subject"] = "Test from Python"
msg["From"] = "your_email@gmail.com"
msg["To"] = "recipient@example.com"
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login("your_email@gmail.com", "your_app_password")
server.send_message(msg)
server.quit()
3、赋予执行权限并运行:
执行 chmod +x send_test.py && python3 send_test.py。
4、检查异常输出:
若出现 smtplib.SMTPAuthenticationError,说明应用专用密码错误或账户未开启两步验证。
四、使用curl结合Mailgun API发送邮件
Mailgun提供HTTP API接口,绕过传统SMTP协议限制,适合集成到自动化流程中,且无需本地邮件服务配置。
1、注册Mailgun账户并获取API密钥与发信域名:
登录 https://www.mailgun.com/,在控制台复制 Private API Key 和已验证的 Sending Domain。
2、在终端中构造curl请求:
运行命令 curl -s --url 'smtps://api:key-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@smtp.mailgun.org:465' --ssl-reqd --mail-from 'postmaster@sandbox1234567890abcdef.mailgun.org' --mail-rcpt 'recipient@example.com' --upload-file email.txt。
3、准备email.txt文件:
创建该文件,首行为 From: postmaster@sandbox1234567890abcdef.mailgun.org,次行为 To: recipient@example.com,空行后写入正文。
4、确认返回JSON响应含 "message": "Queued. Thank you." 字样,表示已进入投递队列。

















