【问题标题】:sending email with gmail smtp ( secure layer ) in c++在 C++ 中使用 gmail smtp(安全层)发送电子邮件
【发布时间】:2010-11-16 14:34:54
【问题描述】:

有人在 gmail smtp 服务器上取得了成功吗? smtp.gmail.com 从 C++ 代码发送电子邮件? 我知道它使用安全层,但我不知道如何实现这样一个。

【问题讨论】:

  • 您可能想知道的一件事,我(我也从其他人那里听说过)永远无法让它在端口 465 上工作。使用端口 587,这是 GMail 中列出的另一个端口文档似乎有效。
  • 没问题我可以使用 587 端口,但是我的代码需要如何支持安全层

标签: c++ smtp gmail ssl


【解决方案1】:

通过端口 465 上的 SSL 连接发送到 GMail 确实有效,而且方式简单。您建立连接,进行 SSL 初始化/握手,然后发送EHLO 命令,这是通常的方式。您还需要登录或通过服务器进行普通身份验证以使其接受您的消息。

【讨论】:

    【解决方案2】:

    这是我用的,不过它是为 linux 设计的,从技术上讲它应该可以在 windows 上工作

    http://johnwiggins.net/jwsmtp/

    教程在那里,直截了当

    http://johnwiggins.net/jwsmtp/example1.html

    这是来自显示端口和 SMTP 服务器的站点的复制和粘贴。归功于约翰·维金斯

         jwsmtp::mailer mail(to.c_str( ),
                         from.c_str( ),
                         subject.c_str( ),
                         mailmessage.c_str( ),
                         smtpserver.c_str( ),
                         jwsmtp::mailer::SMTP_PORT,
                         false);
    

    验证

    mail.username("loginname");
    mail.password("secret");
    mail.authtype(mailer::PLAIN);  
    

    目前只支持LOGIN和PLAIN认证,默认LOGIN, 设置为 PLAIN 调用 authtype 函数

    【讨论】:

    • 好的,我看到了源代码,在源代码中它不支持身份验证,但在网站中它写道它支持...
    • 现在我想我需要 STARTTLS (ssl)_ 支持这个库不支持,有什么解决方案吗?
    • 尝试给编写 lib 的人发电子邮件。他可能会在这方面为您提供帮助。或要求添加:D。这对我们所有人都很好
    • 看起来很有用...我希望 boost 有类似的东西
    【解决方案3】:

    您的 ISP 可能会阻止安全 SMTP 端口。

    您可以在 Thunderbird 中尝试相同的操作,并首先验证端口是否打开。

    【讨论】:

    • 谢谢。这是值得注意的一点。不过,我看不出他们有任何阻止的理由。
    猜你喜欢
    • 2016-09-02
    • 2011-08-18
    • 2014-12-24
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多