如何使用PHP中的mailgun API发送多封电子邮件

时间:2017-07-26 10:04:42

标签: php email mailgun

我尝试使用 PHP 中的mailgun API 运行以下代码来发送多封电子邮件。但是没有使用该代码发送电子邮件。我的代码是:

require 'vendor/autoload.php';
use Mailgun\Mailgun;

$mgClient = new Mailgun("my-api-key");
$domain = "sandboxfa3e9009746840be831c6edc9e9f1ee9.mailgun.org";
$result = $mgClient->sendMessage("$domain",
array('from' => 'Mailgun Sandbox - Test  
       <postmaster@sandboxfa3e9009746840be831c6edc9e9f1ee9.mailgun.org>',
    'to' => 'email_1@gmail.com, email_2@gmail.com',
    'subject' => 'Mailgun bulk-msg test for KB',
    'text' => 'Your mail do not support HTML',
    'html' => 'html-portion here...',
    'recipient-variables' => '{"email_1@gmail.com": {"first":"Name-1", 
     "id":1}, "email_2@gmail.com": {"first":"Name-2", "id": 2}}')
 );
 var_dump($result);
 ?>
 #===============================================  

我在代码中发错误发送多封电子邮件吗?如果您有任何解决方案,请提供帮助。

2 个答案:

答案 0 :(得分:0)

我从他们的API中找到了这个。 (可能不是答案。仅供参考)

require 'vendor/autoload.php';
use Mailgun\Mailgun;

$mg = Mailgun::create('key-example');

# $mg->messages()->send($domain, $params);
$mg->messages()->send('example.com', [
  'from'    => 'bob@example.com',
  'to'      => 'sally@example.com',
  'subject' => 'The PHP SDK is awesome!',
  'text'    => 'It is so simple to send a message.'
]);

Source

答案 1 :(得分:0)

除了Abdulla指出的内容之外,我发现您正在编写"$domain"作为文字域参数。如果用引号标记它,那么它将被解释为一个字符串,而不是变量本身。

更改以下内容并应该有效:

$result = $mgClient->sendMessage("$domain",
[...]

$result = $mgClient->sendMessage($domain,
[...]