看上去,swaks可以直接用SMTP协议发信,其大概流程差不多是telnet到25端口,然后按邮件协议发信 (我将自己的输入用> 特地做了标注,没标注> 的都是服务器返回的结果)
$ telnet mx.chacuo.net 25
Trying 47.101.37.59...
Connected to mx.chacuo.net.
Escape character is '^]'.
220 web1905 chcuo.net server 0.2
> HELO chcuo.net
250 web1905
> MAIL FROM:<arfujt80615@chacuo.net>
250 Ok
> RCPT TO:<arfujt80615@chacuo.net>
250 Ok
> DATA
354 End data with <CR><LF>.<CR><LF>
> …sends body of mail message..
>
> .
250 Ok
> QUIT
221 Bye
Connection closed by foreign host.
看了一下,Rust的几个涉及电子邮件的crate基本都是客户端,需要连接真正的服务器(外加使用在服务器注册的用户名以及验证码)才能发信,不像swaks/telnet这样可以直接发信
想问一下Rust有没有能像swaks/telnet这样直接发电子邮件的crate
虽然理论上我可以翻译一下perl,但五千多行perl+各种神奇符号,看得我一头无数 不想再自学一遍perl了
1
共 6 条评论, 1 页
评论区
写评论看了一下
不知道为什么不能通过测试(包括按其他回复的说法,把
starttls_relay
改成build_dangerous
)提示发送成功,但事实上什么都没有收到
不知道是哪里出了问题
可能是lettre太新了,不支持这种老服务器
--
👇
ThalliMega: 是直接往DNS的MX發嗎 自己寫的簡陋lettre客戶端:https://github.com/ThalliMega/remail.git
是的,这方法返回的 SmtpTransportBuilder 直接 .build() 拿到的 transport 应该就是文档所指的 default,不过倒是可以自己再加 .tls(), .credentials(), .port() 等等 builder 方法配置。
楼主好像是直接用 telnet 裸连(应该是自己的)服务器通信,感觉这个服务器应该是比较平易近人、好相处的 [笑]。
文档写的是
default
,未必能正常使用,除非服务器支持25端口。而25端口不需要用户验证会导致垃圾邮件泛滥,所以正经的邮件服务器都不支持。--
👇
TinusgragLin: > (外加使用在服务器注册的用户名以及验证码)才能发信
我没用过 lettre,不过我感觉这应该不是必需的,就看了一下文档,这个
builder_dangerous
上的文档有写:我猜用这个+不做用户验证的远端应该就不用用户名和密码或授权码了吧?
是直接往DNS的MX發嗎 自己寫的簡陋lettre客戶端:https://github.com/ThalliMega/remail.git
我没用过 lettre,不过我感觉这应该不是必需的,就看了一下文档,这个
builder_dangerous
上的文档有写:我猜用这个+不做用户验证的远端应该就不用用户名和密码或授权码了吧?
lettre 需要用户名和密码或授权码