如何通过curl

时间:2018-12-17 20:56:37

标签: php codeigniter email mailgun

就发布任何内容而言,我是StackOverflow的新手。 如果我做不正确,请原谅。

我找到了一篇帖子,展示了如何在Codeigniter中集成Mailgun API,并且效果很好。 请在此处查看-How to work with Mailgun API in CodeIgniter; Forbidden error in curl_exe()

当我想在同一段代码中附加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 . '>'
        ]);

其中$ increport是我的pdf文件的路径,而$ increportnm是该pdf文件的名称。

运行此命令时,没有电子邮件发送到Mailgun:(

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

无需调用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_r进行$curl_response并检查mailgun日志以获取其他失败信息