首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用libcurl的SMTP邮件

使用libcurl的SMTP邮件
EN

Stack Overflow用户
提问于 2011-10-18 15:22:40
回答 2查看 9.7K关注 0票数 3

我用libcurl编译了c示例--船只。

源文件是smtp-tls.c

试着用它通过gmail发送邮件,这是我得到的回复

  • 即将连接()到smtp.gmail.com端口465 (#0)
  • ,尝试74.125.115.109.* connected
  • Server使用Basic和用户'xxxxxxx@gmail.com‘

GET / HTTP/1.1授权:基本

从server

  • Connection #0到主机smtp.gmail.com的
  • 空应答没有返回任何内容(没有标头,没有data)
  • Closing连接#0

)

我错过了什么?除了变量输入之外,我没有以任何方式修改代码。在这台机器上,我可以使用Outlook 2003收发邮件。

编辑

试过不同的端口。这就是结果

  • 即将连接()到smtp.gmail.com端口587 (#0)
  • ,尝试74.125.93.109.*使用Basic with用户'xxxxxxx@gmail.com‘GET /1.1授权: Basic

220 mx.google.com ESMTP ew54y2x5 95qdz.12 502 5.5.1未识别命令。95 qdz.12*与主机smtp.gmail.com的连接#0保持完整*关闭连接#0

编辑

Main看起来像这样

代码语言:javascript
复制
int main()
{
 CURL *curl;
  CURLcode res;
  struct curl_slist *recipients = NULL;
  struct upload_status upload_ctx;

  upload_ctx.lines_read = 0;

  curl = curl_easy_init();
  if (curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "smtp://gmail.com:587");
    curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_ALL);
    curl_easy_setopt(curl, CURLOPT_USERNAME, "xxxxxx@gmail.com");
    curl_easy_setopt(curl, CURLOPT_PASSWORD, "xxxxxxxx");
    curl_easy_setopt(curl, CURLOPT_MAIL_FROM, FROM);
    recipients = curl_slist_append(recipients, TO);
    recipients = curl_slist_append(recipients, CC);
    curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);
    curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
    curl_easy_setopt(curl, CURLOPT_READDATA, &upload_ctx);
    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
    res = curl_easy_perform(curl);
    curl_slist_free_all(recipients);
    curl_easy_cleanup(curl);
  }
  return 0;
}

编辑

看起来正确的网址应该是smtp://smtp.gmail.com:587

这让我走得更远,现在我

代码语言:javascript
复制
* About to connect() to smtp.gmail.com port 587 (#0)
*   Trying 74.125.45.108... * connected
< 220 mx.google.com ESMTP j26srtuiopnann.7
> EHLO my_computer_name
< 250-mx.google.com at your service, 
< 250-SIZE 35882577
< 250-8BITMIME
< 250-STARTTLS
< 250 ENHANCEDSTATUSCODES
* No known auth mechanisms supported!
> QUIT
< 221 2.0.0 closing connection j26srtuiopnann.7
* Closing connection #0
* Login denied

编辑

Libcurl不是用SSL支持构建的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-18 21:31:01

那里的第一个输出看起来像是在给libcurl提供一个HTTP。

你经过编辑的问题现在变成了完全不同的问题。现在看来,您可能在构建的libcurl中没有启用SSL吗?

票数 3
EN

Stack Overflow用户

发布于 2012-03-08 01:51:27

我的程序有一个错误Connect #0 to host smtp.gmail.com left intact failed。但它起作用了。我可以通过gmail帐户发送邮件。但我不知道这就是错误的原因。

我使用命令curl-config --feature并得到结果:

代码语言:javascript
复制
SSL
IPv6
libz
IDN
NTLM
NTLM_WB
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7809693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档