代码之家  ›  专栏  ›  技术社区  ›  Stormshadow

使用WinAPI通过gmail SMTP服务器发送邮件

  •  1
  • Stormshadow  · 技术社区  · 16 年前

    在Windows下用C语言发送邮件。我可以连接到服务器的端口587,但是服务器的响应是需要STARTTLS/TLS。是否有用于启动TLS连接的Windows API调用?

    编辑:是否有人可以通过使用Telnet连接到smtp.gmail.com来发送邮件?我得到的是

    220 mx.google.com ESMTP g4sm73428740wae.2
    HELO hello
    502 5.5.1 Unrecognized command. g4sm73428740wae.2
    HELO hello.hello
    250 mx.google.com at your service
    MAIL FROM:a@gmail.com
    530 5.7.0 Must issue a STARTTLS command first. g4sm73428740wae.2
    STARTTLS
    220 2.0.0 Ready to start TLS
    MAIL FROM:a@gmail.com
    

    3 回复  |  直到 16 年前
        1
  •  2
  •   user195488 user195488    16 年前

    您需要在Microsoft的SmtpClient周围使用.NET包装器来创建一个DLL,该DLL可以通过SMTP使用.NET功能来支持SSL/TLS,或者使用OpenSSL来处理连接。

    这可能是有益的,你写这个在C++中。我不熟悉Python,但我确信有这样的库 TLS Lite (编辑:见下文,smtplib显然也提供了这个功能)

    编辑: http://mail.google.com

        2
  •  1
  •   Remy Lebeau    16 年前

    如果您不想使用OpenSSL或其他第三方SSL/TLS库,那么可以改用微软自己的SSPI/schannelapi。它可以用在socket之上,socket处理字节的低级输入/输出,您可以将字节传入/传出SSPI/SChannel函数进行处理。

        3
  •  1
  •   Garett    16 年前

    GNU SASL ,它启用安全的SMTP身份验证。如果你选择C++,正如之前所建议的那样,我会看看。 VMime ,这是一个使用gsasl的免费C++库。有一个 example 在显示如何连接到GMail的网站上。