Как работать с Attachment в Mailgun API в Codeigniter через curl - PullRequest
0 голосов
/ 17 декабря 2018

Я новичок в StackOverflow с точки зрения публикации чего-либо.Пожалуйста, извините, если я делаю это неправильно.

Я нашел пост, в котором показано, как интегрировать Mailgun API в Codeigniter, и он работает хорошо.Смотрите здесь - Как работать с Mailgun API в CodeIgniter;Запрещенная ошибка в 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 голосов
/ 18 декабря 2018

Нет необходимости вызывать 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 и проверьте журналы почтового пистолета на наличие дополнительной информации об ошибке

...