使用SMTPS(TLS)
通过gmail(smtp.gmail.com)发送电子邮件的开放源代码库注:如果您没有时间阅读这漫长的旅程,则解决方案(使用源代码)位于:http://www.coastrd.com/smtps。使用SMTPS(TLS)
长时间通过远程邮件服务器(通常在网站托管公司)发送电子邮件SMTP(端口25)很容易处理应用程序。打开TCP端口25,发送“HELO ......”等
要做到这一点使用谷歌的电子邮件服务是给了我一个问题,因为他们坚持使用端口465 SMTPS即SMTP与TLS加密:
http://en.wikipedia.org/wiki/Transport_Layer_Security#How_it_works
在研究的方式与C++等语言或基本风味做到这一点,我碰到:
http://forums.realsoftware.com/viewtopic.php?f=2&t=29542
http://forums.realsoftware.com/viewtopic.php?f=2&t=26959&p=162671#p162671
和Python的问题:
python smtp gmail authentication error (sending email through gmail smtp server)
如果我理解正确这一点,我将需要实现我的C++代码的TLS加密,完成所有手抖和谈判?
从C#问题:
sending email with gmail smtp (secure layer) in c++
本库没有做到这一点
http://johnwiggins.net/jwsmtp/
新增:
很多人只是安装的安全通道作为服务,然后配置它进行管理在SSL连接
Stunnel的是OpenSSL的包装。 OpenSSL有一些性能问题(http://josefsson.org/gnutls4win/)
“在某些系统上初始化libgcrypt需要很长时间,但有报道称它可能需要大约10秒。”
,并要求: “的libeay32.dll” 1.35MB + “libssl32.dll” 310K + “zlib1.dll” 75K
然后THRE是一对情侣的商业产品:
http://www.chilkatsoft.com/downloads.asp
该产品主要以ActiveX(COM)“dll”(需要用户计算机上的安装程序'注册'dll - 另一个糟糕的.net想法)的形式交付。
安装程序加载“ChilkatMime.dll”1.33Mb,“ChilkatCert.dll”1.26MB,“ChilkatUtil.dll”720k。开发人员对合作真正的C .dll库并不感兴趣,该库可以从任何语言中调用,包括C/C++/BASIC/Python等。鉴于他们的态度我并不感到惊讶,他们一直是被黑客取得代码生成的受害者。
除了俗气的名字和作品,他们的产品价格合理,但一个我试过了,尽管在端口25连接被告知要使用端口465
相比之下,从催化剂的商品选项:
http://www.catalyst.com/products/sockettools/secure/library/index.html
现在作为主要插座工具产品的组件提供1/3的价格。这些工具是一流的!是的,你得到你所支付的。开发人员对此有所反应并愿意接受建议。他们提供DLL的所有口味,包括可以与你的产品,只有230K运一个独立的.dll文件!对于解决方案,他们赢得双手。
的SLL/TLS连接可以被显式地(只要握手开始SEESION)或隐含地(使用STARTTLS等握手之后)
笨是隐式的,例如(如在Python选项,ASP的,PHP等) http://codeigniter.com/forums/viewthread/84689/
一旦连接已建立,“隧道”的存在,通过该MIME会话可继续进行:
"EHLO " + sLocalHost + CRLF
"MAIL FROM: " + sMailFrom + CRLF
"RCPT TO: " + "[email protected]" + CRLF
"DATA: Testing, Testing xyz" + CRLF
CRLF + "." + CRLF
"QUIT"
与来自服务于通常的反应河
有些语言处理MIME通信为你(套筒工具,笨等),你只给在电子邮件主题,正文和地址使得它非常容易使用
CryptLib是促进一个开放源码的解决方案的SSL/TLS安全通道来只有1MB(全编译)一个C风格的.dll文件。由于源是可用的,就可以编译版本只用组件的dll,你需要将要来的比稍差。
http://www.cs.auckland.ac.nz/~pgut001/cryptlib/download.html
作者是即使我立即开展工作的图书馆,并询问有关MIME对话框非常敏感。有330页的手册!谢谢。
这个库不是MTA(邮件传输代理),所以你必须写上面的MIME对话,但它是免费的!可
源代码在这里: http://www.coastrd.com/smtps。
你是对的,你需要在你的应用程序中启用TLS。相反,你自己这样做的,我会建议寻找到OpenSSL。
此外,你需要enable SMTP in your account和support SMTP authentication通过Gmail发送流量。
还有一个duplicate question有一些指针和C# implementation与代码,可能会帮助你。
There is also a library可能比滚动自己的更容易使用(虽然它目前不支持TLS)。
ooooh谢谢你发现这个dupliacte。我将改变这个问题,使其更适合于C++和第三方库。 – 2009-11-15 00:18:38
如果我正确读取该页面,john wiggins库不支持加密。 – 2009-11-15 06:35:59
@Mike Trader:不,它还没有SSL/TLS支持。看着这个项目的论坛,它看起来像“即将到来”。希望它至少会给你一些处理SMTP-AUTH的指针。或者,你可以潜入并添加它......有一个社区会感谢你! – jheddings 2009-11-15 06:45:18
退房http://sourceforge.net/projects/libquickmail/。 此库可以将包含可选附件的邮件发送给多个收件人。 SMTP传输依赖于libcurl,所以它支持认证和TLS之类的东西。 C API非常简单易用。 在Linux(GCC)和Windows(MinGW)上进行测试,但应该在libcurl可用的任何平台上工作。
“开发商不是在一个真正的C .dll文件库,可以从包括C/C++/BASIC/Python的等等等等任何一种语言被称为合作毫无兴趣” - 所以他们没有做你想要的东西,可能因为他们没有看到它的商业案例,所以现在他们应该得到他们得到的一切? – 2013-04-23 15:52:40