如何使用 c++ (curl) 发送电子邮件

Posted

技术标签:

【中文标题】如何使用 c++ (curl) 发送电子邮件【英文标题】:How to send email using c++ (curl) 【发布时间】:2018-12-05 05:50:58 【问题描述】:

如何给这封邮件添加主题?

    #include <windows.h>

int main(void)
    char* command = "curl smtp://smtp.gmail.com:587 -v --mail-from \"SENDER.EMAIL@gmail.com\" --mail-rcpt \"RECEIVER.EMAIL@gmail.com\" --ssl -u SENDER.EMAIL@gmail.com:PASSWORD -T \"ATTACHMENT.FILE\" -k --anyauth";
    WinExec(command, SW_HIDE);
    return 0;

【问题讨论】:

这不起作用吗?如果有,怎么做? 您可能会通过here获得一些帮助 我的理解是有curl库可以使用,而不是通过系统命令。 【参考方案1】:

我想向您指出 https://everything.curl.dev/libcurl/libcurl,它描述了 curl 命令的 --libcurl 选项。 当使用--libcurl outfile.c 运行curl 时,它会将示例代码保存到outfile.c,以演示如何以与curl 命令相同的方式使用libcurl。

我分享这个的原因是为了帮助您了解如何自己了解如何使用 libcurl 做您想做的事情。希望这将有助于回答您以后可能遇到的任何问题。

【讨论】:

【参考方案2】:

cURL中发送带有主题的邮件有两种方法:命令行和来自C++代码。

命令行:

可以在电子邮件数据文本文件“email.txt”中指定主题

curl smtp://mail.example.com --mail-from myself@example.com --mail-rcpt
receiver@example.com --upload-file email.txt

这里是教程:cURL_SMTP_Command_Line

来自 C++ 代码:

在这种情况下,您在 payload_text 中指定主题。

  static const char *payload_text[] = 
  "Date: Mon, 29 Nov 2010 21:54:29 +1100\r\n",
  "To: " TO_MAIL "\r\n",
  "From: " FROM_MAIL "\r\n",
  "Cc: " CC_MAIL "\r\n",
  "Message-ID: <dcd7cb36-11db-487a-9f3a-e652a9458efd@"
  "rfcpedant.example.org>\r\n",
  "Subject: SMTP example message\r\n",
  "\r\n", /* empty line to divide headers from body, see RFC5322 */ 
  "The body of the message starts here.\r\n",
  "\r\n",
  "It could be a lot of lines, could be MIME encoded, whatever.\r\n",
  "Check RFC5322.\r\n",
  NULL
;

示例如下:cURL_SMTP_From_Code

【讨论】:

以上是关于如何使用 c++ (curl) 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 C++ 程序发送电子邮件?

如何使用 CURL 转义部分 JSON POST 请求中的字符?

如何从 GitLab CI 管道的工作发送电子邮件?

如何使 libcurl C++ 调用超时和/或知道调用中何时发生超时

如何在 cURL POST 请求中使用数组

通过 MS Exchange Server 在 Windows 上使用 curl 发送邮件