当我尝试使用https://sourceforge.net/projects/libquickmail发送电子邮件时 我收到错误
无法解析SMTP服务器主机名。
#include "quickmail.h"
#pragma comment(lib, "libquickmaillight.dll.a")
int main()
{
quickmail_initialize();
quickmail mailobj = quickmail_create("LOGIN@yandex.ru", "libquickmail test e-mail");
quickmail_set_body(mailobj, "This is a test e-mail.\nThis mail was sent using libquickmail.");
const char *errmsg = quickmail_send(mailobj, "smtp.yandex.com", 465, "LOGIN@yandex.ru", "PASSWORD");
if (errmsg != NULL) {
fprintf(stderr, "Error sending e-mail: %s\n", errmsg);
}
quickmail_destroy(mailobj);
}
编译器是MSVC14 我做错了什么?
答案 0 :(得分:0)
尝试使用 quickmail_send_secure 代替 quickmail_send
答案 1 :(得分:0)
首先,我看到您正在使用465端口,这可能意味着您要使用SSL加密。
要使用SSL加密,您需要使用quickmail_send_secure()
。由于libquickmaillight
不支持加密,因此您需要链接到libquickmail
。
您的错误Unable to resolve SMTP server host name
表示DNS查找错误。确保命令提示符中的ping smtp.yandex.com
在您的系统上可以使用。
full库和light库之间的区别还在于full库使用libcurl。有可能没有针对libquickmaillight
进行构建也可能会解决您的DNS问题,因为libcurl可能更适合查找DNS内容(例如,当您使用IPv6时)。
答案 2 :(得分:0)
我有同样的问题。 visual Studio 2015企业。 WINDOWS中某个程序的解决方案是WSAStartup: WSAStartup函数启动进程使用Winsock DLL。 https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-wsastartup
在使用libquickmail之前:
WSADATA data;
WSAStartup(MAKEWORD(2, 2), &data);
.....
和 WSACleanup(); 最后