使用 SMTP 协议发送邮件问题求教,我自己是真解决不了

125 天前
 tiRolin

现在有要求如下

websocket 连接/smtp 端点,模拟 SMTP 协议发送邮件,发件地址: test@mine.com ,收件地址 test@nullht.com ,邮件内容 Hello World 。请注意:大小写敏感,websocket 连接仅保留 1 分钟左右,断了需要重连并重头发送 SMTP 命令

可以确定发送的地址是 wss://interview-test.nullht.com/smtp

我按照他的要求,写出了下面的代码,其他的不重要,我们直接看我发送请求的格式

    private void initializeCommands() {
        commandQueue.clear();
        commandQueue.add("EHLO mine.com\r\n");
        commandQueue.add("MAIL FROM:<test@mine.com>\r\n");
        commandQueue.add("RCPT TO:<test@nullht.com>\r\n");
        commandQueue.add("DATA\r\n");
        // 注意:邮件内容需要包含完整格式
        commandQueue.add(
            "From: test@mine.com\r\n" +
                "To: test@nullht.com\r\n" +
                "Subject: Hello\r\n" +
                "\r\n" +  // 空行分隔头部和正文
                "Hello World\r\n" +
                ".\r\n"    // 结束符
        );
        commandQueue.add("QUIT\r\n");
    }

这个代码可以得到下面的响应:

Sending command: EHLO mine.com
Server response: 220 邮件服务器准备就绪
Server response: 250 很高兴认识你
Sending command: MAIL FROM:<test@mine.com>
Server response: 250 发件人已接受
Sending command: RCPT TO:<test@nullht.com>
Server response: 250 收件人已接受
Sending command: DATA
Server response: 500 命令不被识别

显然是 DATA 后的内容有问题,其他的都没毛病。但是我参照下面的教程

https://blog.csdn.net/weixin_39833509/article/details/88965720

感觉这个格式也没问题啊,我试了好久了都没搞出来到底哪里有问题,什么 AI 、谷歌全试过了,有没有大佬救一下,小弟我是真不行了,我先谢谢各位了

3426 次点击
所在节点    Java
26 条回复
teaser
124 天前
别在代码里测试了,直接 telnet 模拟发送测试吧
unused
124 天前
等服务器回复再发下一条
0x663
124 天前
好奇基于 websocket 协议的邮件是什么样的
dreamage
124 天前
smtp 套 wss 什么骚操作
tiRolin
124 天前
@dreamage 我不太懂,所以我是直接通过 AI 写的,我也不知道该怎么办,他这个问题我之前都没接触过
julyclyde
124 天前
smtp 协议没问题
不过你得先问问这个 smtp 是不是需要先 auth

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1132845

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX