我正在使用libcurl运行am-1808运行linux [我需要使用我的c程序发送电子邮件],我已成功编译libcurl for arm并成功编译sample application ,但是当我在arm-board上运行这个应用程序时,我得到了以下输出。
* About to connect() to smtp.gmail.com port 587 (#0)
* Trying 74.125.127.108... * 0x12008 is at send pipe head!
* Connected to smtp.gmail.com (74.125.127.108) port 587 (#0)
< 220 mx.google.com ESMTP pf8sm6421301pbc.44
> EHLO am180x-evm
< 250-mx.google.com at your service, [115.186.161.64]
< 250-SIZE 35882577
< 250-8BITMIME
< 250-STARTTLS
< 250 ENHANCEDSTATUSCODES
> STARTTLS
< 220 2.0.0 Ready to start TLS
> QUIT
然后它仍然停留在那里,我电脑上同一程序的输出是,
* About to connect() to smtp.gmail.com port 587 (#0)
* Trying 74.125.127.108...
* Connected to smtp.gmail.com (74.125.127.108) port 587 (#0)
* Connected to smtp.gmail.com (74.125.127.108) port 587 (#0)
< 220 mx.google.com ESMTP ns5sm15912240pbb.26
> EHLO ubuntu
< 250-mx.google.com at your service, [115.186.161.64]
< 250-SIZE 35882577
< 250-8BITMIME
< 250-STARTTLS
< 250 ENHANCEDSTATUSCODES
> STARTTLS
< 220 2.0.0 Ready to start TLS
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: none
* SSL connection using ECDHE-RSA-RC4-SHA
* Server certificate:
* subject: C=US; ST=California; L=Mountain View; O=Google Inc; CN=smtp.gmail.com
* start date: 2011-11-18 01:57:17 GMT
* expire date: 2012-11-18 02:07:17 GMT
* issuer: C=US; O=Google Inc; CN=Google Internet Authority
* SSL certificate verify ok.
> EHLO ubuntu
< 250-mx.google.com at your service, [115.186.161.64]
< 250-SIZE 35882577
< 250-8BITMIME
< 250-AUTH LOGIN PLAIN XOAUTH
< 250 ENHANCEDSTATUSCODES
> AUTH LOGIN dXNhbWF5YXNlZW45MEBnbWFpbC5jb20=
< 334 UGFzc3dvcmQ6
> dXNhenJwMjY=
< 235 2.7.0 Accepted
> MAIL FROM:<my_email@gmail.com>
< 250 2.1.0 OK ns5sm15912240pbb.26
> RCPT TO:<my_email@yahoo.com>
< 250 2.1.5 OK ns5sm15912240pbb.26
> DATA
< 354 Go ahead ns5sm15912240pbb.26
< 250 2.0.0 OK 1342605604 ns5sm15912240pbb.26
* Connection #0 to host smtp.gmail.com left intact
> QUIT
< 221 2.0.0 closing connection ns5sm15912240pbb.26
* Closing connection #0
证书存在一些问题,我在配置lib-curl时尝试设置ca-bundle,但它没有帮助。这是我配置libcurl的命令。
./configure --host=arm-none-linux-gnueabi --build=i686-linux CFLAGS='-Os' --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt --with-ssl=/usr/bin/openssl --enable-smtp
我知道如何解决这个问题吗?
问候
乌萨马
答案 0 :(得分:1)
lib-curl需要openssl来启用https,ssl等,现在我已经在我的系统上安装了openssl,但是这是为x64处理器编译的,所以我交叉编译了open-ssl for arm以及之后我再次交叉编译lib-curl for arm,现在sample applicatio n工作正常并发送电子邮件。
open-ssl的configure参数是:
./config os/compiler:arm-none-linux-gnueabi-gcc
lib-curl的configure参数是:
./configure --host=arm-none-linux-gnueabi --build=i686-linux CFLAGS='-Os' --enable-smtp --with-ssl
如果您仍然收到证书错误,请将其添加到配置参数中。
--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
P.S:在手臂上运行应用程序之前,不要忘记将电脑中的include和lib文件复制到手臂。