微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

成功发送消息后,如何调试 curl 问题CURLOPT_MAIL_FROM、文本/html 显示?

如何解决成功发送消息后,如何调试 curl 问题CURLOPT_MAIL_FROM、文本/html 显示?

我使用 libcurl 成功发送了一条 mime 消息。但是,在收到的电子邮件中,我只能在“发件人:”字段中看到“用户名”。

    curlCode_ = curl_easy_setopt(curl,CURLOPT_MAIL_FROM,from_field);
    recipients = curl_slist_append(recipients,(const char *)to_);
    recipients = curl_slist_append(recipients,cc.str().c_str());
    curl_easy_setopt(curl,CURLOPT_MAIL_RCPT,recipients);

我认为这是 gmail 的一项安全功能,确保发件人始终显示在“发件人”字段中。 另一个问题是我发送了一个包含 alt 文本部分的多部分 mime 消息。在 zoho mail 中,我可以查看 HTML,但是 gmail 总是显示文本部分。

作为参考,我确保 HTML 出现在文本之前。

    /* Build the mime message. */
    mime = curl_mime_init(curl);

    /* The inline part is an alternative proposing the html and the text
       versions of the e-mail. */
    alt = curl_mime_init(curl);

    /* HTML message. */
    part = curl_mime_addpart(alt);
    curl_mime_data(part,html_body_.c_str(),CURL_ZERO_TERMINATED);
    curl_mime_type(part,"text/html");

    /* Text message. */
    part = curl_mime_addpart(alt);
    curl_mime_data(part,body_.c_str(),CURL_ZERO_TERMINATED);

    /* Create the inline part. */
    part = curl_mime_addpart(mime);
    curl_mime_subparts(part,alt);
    curl_mime_type(part,"multipart/alternative");
    slist = curl_slist_append(NULL,"Content-disposition: inline");
    curl_mime_headers(part,slist,1);

代码相当长并且包含在多个类中,因此我可以发布任何认为相关的代码以避免混乱。基本上我不确定如何调试。

编辑:- 文本部分必须在 html 部分之前。现在 zohomail 和 gmail 都显示 html。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。