我正在尝试使用openssl从命令行发送邮件。 我可以通过端口465连接到gmail的smtp服务器,并且validation成功。 MAIL FROM和rcpt也能正常工作。 接下来,当我input数据时,它给了我一个354,这也是非常好的。 在我input的数据如下:
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。
呃…但读完这个话题后,花了我几小时才知道!
在此张贴我的解决scheme
在互联网上的任何地方,他们告诉你,你应该使用-crlf开关来初始连接命令 – 至于我所做的。
但是,这只适用于Linux / Unix! 在Windows上,您不能使用此开关!
的。 需要单独在一条线上,然后是另一条回车…
即
你好! 。
(这可能是serverfault的格式,搞砸了,但检查。)
在代码中…它应该是<cr>。<cr>或使用crlf而不是仅仅一个cr。
我遇到了这个问题(只是与Gmail),看到了这个问题。 我终于明白,build立一个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);