让前端飞Web前端之路程序员

闲聊c/c++: vs2015编译libquickmail C语

2017-08-24  本文已影响177人  随风而行之青衫磊落险峰行
雷达邮件发送-0-7.gif

gif导出设置纵横比没设好,有变形

本篇目的:

原本今天是要轮到闲聊js 2D 引擎篇,但是等会要去见个客户,需要出去一下,就从我的储备中找一篇文章发出来,尽量不开天窗!

原本都是晚上写文章,上午发文。昨晚我拍了个视频,没写文,所以就从我的储备中找一篇相对完整的文章发布。

几点说明:

为了我的c++服务器demo,需要发送电子邮件。感觉libquickmail库满适合我的需求,因此编译libquickmail。现记录下编译过程以及相关说明!

1.下载地址: libquickmail

2. 解压后源文件说明:

3. 编译宏: NOCURL(编译不使用curl的邮件发送程序)

4. 可以编译的类型以及对应的编译宏:

5. 编译中的错误处理

_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS

6. 使用qq邮箱测试,必须要获取qq邮箱的AccessToken(如何获取qq邮箱的AccessToken,需要演示)

7. 测试代码(使用qq邮箱)

    int ret = -1;
    quickmail mailobj;
    ret = quickmail_initialize();
    mailobj = quickmail_create(NULL, NULL);
    quickmail_set_from(mailobj, "47178234@qq.com");
    quickmail_add_to(mailobj, "47178234@qq.com");
    quickmail_set_subject(mailobj, "blf email test from c++");
    const char* msg = quickmail_send_secure(mailobj, "smtp.qq.com", 465, "47178234@qq.com", "用你的qq邮箱token,机密码,很重要,不能泄露!!");
    if (msg)
        printf("%s\n", msg);
    quickmail_destroy(mailobj);
    ret = quickmail_cleanup();

8. 令人遗憾的测试结果:

smtps不支持.png

9. 这是因为腾讯邮箱使用SMTPS协议(相当于https)。而NOCURL版本的libquickmail只支持SMTP格式(相当于http)。他们之间相差一个openssl库的距离.....

10. 下一篇我们来编译curl库以及libquickmail,完美解决SMTPS问题!(ubuntu/raspberryPI/ios/android等系统都可以编译)

附:
c/c++特点:
跨平台,跨语言,一次编写,到处编译,各地运行

gif演示使用了nodejs+socket.io+gyp构建的 c/c++ email

【c/c++中gyp cmake这两个构建系统一定要学会,这样才能走遍天下都不怕,例如android ndk中,需要使用cmake来进行构建和编译,现在cmake非常流行,真的好用啊!】

完美演绎c/c++的跨平台,跨语言,一次编写,到处编译,各地运行的强大特点!!!!

其实这个demo是为了我一篇文章:为什么要学点c/c++
写了好几个月,还没写好,是因为我花了很多时间做demo,和研究对比,提炼重点(我文笔不行,但是尽量说清楚)

为了这篇《为什么要学点c/c++》文章,我在各个平台编译了大量的跨平台的c/c++库
例如世界三大js引擎:
ms chakra-core/google v8 / mozilla spidemonkey
js是我非常看好的一门语言,关于js各个引擎与c/c++的互调我是非常清晰明白的,我个人其实最喜欢chakra-core,很漂亮的api。v8编译静态库超过2g,链接一次花三分钟,实在可怕,而动态链接库版在windows下我无法编译出来

渲染引擎:
google skia / cario / nanovg
各种基本库:
多了去了,都是经典的libXXXX,每个平台必备的库

开发周记(2017/3/26-2017/4/2)

开发周记(2017/4/3-2017/4/9)

开发周记(2017/4/10-2017/4/16)

开发周记(2017/4/24-2017/5/1)

这几篇开发周记记录了我编译上面这些庞大库的流程

OAuth2.0实战1(分析简书的微信登陆及实现)
这篇是关于微信oauth2.0授权相关内容,如果开发微信,第一关就是授权,以前我不是很明白的时候,走了很多弯路,一言难尽,倾力奉献!

最后来张宝贝图:


我的宝贝们.jpg

最小那块是工业级别芯片中的明星: esp8266,自带wifi透传功能,国内外多少人为他疯狂。中国的科技企业研发的,享誉世界,目前推出esp32(手掌中中间那块芯片),更是强大无比,自带wifi和蓝牙,足够的小,能耗低。我也算是一直追踪技术的发展。

掌控c/c++,就是掌控未来
(我后续会写很多c/c++文章,为推广c/c++做点个人小贡献)

上一篇下一篇

猜你喜欢

热点阅读