< 返回版块

Neutron3529 发表于 2024-11-22 12:20

看上去,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了

评论区

写评论
作者 Neutron3529 2024-11-25 12:51

看了一下

不知道为什么不能通过测试(包括按其他回复的说法,把starttls_relay改成build_dangerous

提示发送成功,但事实上什么都没有收到

不知道是哪里出了问题

可能是lettre太新了,不支持这种老服务器

--
👇
ThalliMega: 是直接往DNS的MX發嗎 自己寫的簡陋lettre客戶端:https://github.com/ThalliMega/remail.git

TinusgragLin 2024-11-23 14:20

文档写的是default

是的,这方法返回的 SmtpTransportBuilder 直接 .build() 拿到的 transport 应该就是文档所指的 default,不过倒是可以自己再加 .tls(), .credentials(), .port() 等等 builder 方法配置。

25端口不需要用户验证会导致垃圾邮件泛滥,所以正经的邮件服务器都不支持

楼主好像是直接用 telnet 裸连(应该是自己的)服务器通信,感觉这个服务器应该是比较平易近人、好相处的 [笑]。

rayw0ng 2024-11-23 07:12

文档写的是default,未必能正常使用,除非服务器支持25端口。而25端口不需要用户验证会导致垃圾邮件泛滥,所以正经的邮件服务器都不支持。

--
👇
TinusgragLin: > (外加使用在服务器注册的用户名以及验证码)才能发信

lettre 需要用户名和密码或授权码

我没用过 lettre,不过我感觉这应该不是必需的,就看了一下文档,这个 builder_dangerous 上的文档有写:

- No authentication
- No TLS
- A 60-seconds timeout for smtp commands
- Port 25

我猜用这个+不做用户验证的远端应该就不用用户名和密码或授权码了吧?

ThalliMega 2024-11-23 00:21

是直接往DNS的MX發嗎 自己寫的簡陋lettre客戶端:https://github.com/ThalliMega/remail.git

TinusgragLin 2024-11-22 19:13

(外加使用在服务器注册的用户名以及验证码)才能发信

lettre 需要用户名和密码或授权码

我没用过 lettre,不过我感觉这应该不是必需的,就看了一下文档,这个 builder_dangerous 上的文档有写:

- No authentication
- No TLS
- A 60-seconds timeout for smtp commands
- Port 25

我猜用这个+不做用户验证的远端应该就不用用户名和密码或授权码了吧?

miaomiao1992 2024-11-22 18:13

lettre 需要用户名和密码或授权码

1 共 6 条评论, 1 页