GMAIL SMTP 与 openssl:光标在。,没有收到排队等待投递的 250 OK

GMAIL SMTP 与 openssl:光标在。,没有收到排队等待投递的 250 OK

我正在尝试使用 openssl 从命令行发送邮件。我能够连接到端口 465 上的 gmail smtp 服务器,并且身份验证成功。MAIL FROM 和 rcpt to 也工作正常。接下来,当我输入数据时,它给了我一个 354,并继续,这也很好。在数据中我输入了以下内容:

FROM: <[email protected]>
To: <[email protected]> // I am sending and receiving the mail to my account itself for test purposes
Subject: test

hello!
.

现在问题出现了,在我输入之后,光标只是闪烁,我没有收到 250 OK,排队等待交付的响应。

请帮忙!!

我正在 ubuntu 9.10 上尝试这一切。

答案1

啊...然而读完这个主题后,我花了几个小时才找到答案!!

在这里发布我的解决方案:

互联网上到处都在告诉你,你应该使用 -crlf 开关来执行初始连接命令 - 我就是这么做的。

但是...这只适用于 Linux/unix!在 Windows 上,您不能使用此开关!

答案2

。 需要单独占一行...然后跟着另一个回车符...

IE

你好!

(这可能是 serverfault 的格式搞砸了...但请检查。)

在代码中...它应该是<cr>.<cr>或者使用crlf而不是仅仅使用cr。

答案3

我遇到了这个问题(仅限 Gmail),然后看到了这个问题。我最终发现,构建一个 CRLF 并发送它而不是 '\n' 可以解决问题。

char eol[3];
eol[0] = '\r';
eol[1]= '\n';
eol[2] = '\0';
string crlf = string(eol);

string endit(crlf + '.' + crlf);
send(socket_id, endit.c_str(), endit.length(), 0) < 0);

相关内容