如何通过curl使用Codeigniter中的Mailgun API中的附件

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (79)

我是StackOverflow的新手。

我找到了一篇文章,展示了如何在Codeigniter中集成Mailgun API,它运行良好。

当我想在同一段代码中附加pdf时,我的问题出现了。而不是使用

$this->mailgun::send([
  'from' => "Example.com team <no-reply@mg.example.com>",
  'to' => "somerandomuser@gmail.com",
  'subject' => "Welcome to Example.com",
  'text' => "We just want to say hi. Have fun at Example.com"
]);

我曾希望使用以下内容:

$this->mailgun->send([
            'from' => "Web Admin <postmaster@xxxxxx.xxxxxs.org>",
            'to' => $toemail,
            'subject' => $subj,
            'text' => $bodtxt,
            'html' => $bod,
            'attachment' => curl_file_create($increport , 'application/pdf', $increportnm),
            'h:Reply-To' => $replyname . ' <' . $replyemail . '>'
        ]);

$ incrementport是我的pdf文件的路径,$ increportnm是pdf文件的名称。

当我运行这个时,没有邮件发送到Mailgun

谁能帮我吗?

提问于
用户回答回答于

无需调用curl_file_create ...这是我从Codeigniter到Mailgun的方式,它的工作原理如下:

$curl_post_data = array(
    'from'       => 'Emailer name <noreply@mailer.domain.com>',
    'to'         => $recipient,
    'subject'    => $subject,
    'text'       => $mailgun_text,
    'html'       => $mailgun_text_html,   
    'attachment' => @'filename.ext',
);

$service_url = 'https://api.mailgun.net/v3/mailer.mydomain.com/messages';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "api:xxxxxxxxxxxxxxxxxxx-xxxxxx-xxxxxx"); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

之后,我运行$curl_response = curl_exec($curl);并解析响应为$response = json_decode($curl_response, true);

试试吧。如果电子邮件没有出去,请尝试执行print_rfor,$curl_response并检查mailgun日志以获取其他故障信息

扫码关注云+社区

领取腾讯云代金券