如何用curl发送SMTP邮件?遇URL格式错误问题求助
使用curl发送SMTP邮件遇到URL格式错误问题
我花了三天时间查阅数百篇关于使用curl发送基础SMTP邮件的帖子。最初我使用mail命令(我的Debian Linux系统底层调用exim4),但无法正常工作,且使用-d或-v选项几乎得不到有效信息,于是放弃了这种方式。
我最近最接近成功的尝试基于一篇Stack Overflow回答。curl显示已成功连接服务器、建立TLS连接并完成认证,但随后提示URL格式无效——这一提示似乎是curl的通用报错,逻辑不通,且我并未收到邮件。我尝试了无数引号等格式的变体,以下是我最佳的curl尝试脚本及输出(邮箱地址和密码已打码):
#!/usr/bin/zsh SMTP='mail.forestpathology.org' PORT=465 # SSL/TLS端口为465;非SSL端口为2525 USER='------@forestpathology.org' PASS='-------' SERVER='Tabernacle' FROM='-----@forestpathology.org' TO='-----@mac.com' cat mail.txt curl -v --ssl-reqd \ --url smtps://$SMTP:$PORT \ --user $USER:$PASS \ --mail-from $FROM \ --mail-rcpt $TO \ --upload-file mail.txt
Tabernacle:~$ sudo bin/testsm.zsh 发件人: "用户名" <-----@forestpathology.org> 收件人: "约翰·史密斯" <-----@mac.com> 主题: 这是一封测试邮件 嗨约翰, 我正在用curl发送这封邮件。 再见! * 正在尝试连接70.32.23.63:465... * 已连接到mail.forestpathology.org (70.32.23.63) 端口465 (#0) * TLSv1.3 (输出), TLS握手, 客户端问候 (1): * CA文件: /etc/ssl/certs/ca-certificates.crt * CA路径: /etc/ssl/certs * TLSv1.3 (输入), TLS握手, 服务器问候 (2): * TLSv1.2 (输入), TLS握手, 证书 (11): * TLSv1.2 (输入), TLS握手, 服务器密钥交换 (12): * TLSv1.2 (输入), TLS握手, 服务器完成 (14): * TLSv1.2 (输出), TLS握手, 客户端密钥交换 (16): * TLSv1.2 (输出), TLS更改密码套件, 更改密码规范 (1): * TLSv1.2 (输出), TLS握手, 完成 (20): * TLSv1.2 (输入), TLS握手, 完成 (20): * SSL连接使用TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * 服务器证书: * 主体: CN=forestpathology.org * 生效日期: 2024年5月26日 20:05:10 GMT * 过期日期: 2024年8月24日 20:05:09 GMT * 主题备用名称: 主机"mail.forestpathology.org"与证书中的"mail.forestpathology.org"匹配 * 颁发者: C=US; O=Let's Encrypt; CN=R3 * SSL证书验证通过。 < 220-mi3-ss52.a2hosting.com ESMTP Exim 4.96.2 #2 2024年5月28日 星期二 16:47:53 -0400 < 220-我们不授权使用本系统传输未经请求的、 < 220 和/或批量电子邮件。 > EHLO Tabernacle < 250-mi3-ss52.a2hosting.com 你好 Tabernacle [97.120.128.182] < 250-SIZE 78643200 < 250-8BITMIME < 250-PIPELINING < 250-PIPECONNECT < 250-AUTH PLAIN LOGIN < 250 HELP > AUTH PLAIN < 334 > AG----------------------------XM= < 235 认证成功 > HELP < 214-支持的命令: 214-支持的命令: < 214 AUTH HELO EHLO MAIL RCPT DATA BDAT NOOP QUIT RSET HELP 214 AUTH HELO EHLO MAIL RCPT DATA BDAT NOOP QUIT RSET HELP * 连接#0到主机mail.forestpathology.org保持不变 * 关闭连接-1 curl: (3) URL格式错误/非法或缺少URL Tabernacle:~$
内容的提问来源于stack exchange,提问作者Jim Worrall
相关产品推荐
相关产品推荐

