Php 邮枪401回应被禁止我哪里出错了

Php 邮枪401回应被禁止我哪里出错了,php,curl,mailgun,php-curl,Php,Curl,Mailgun,Php Curl,我有两个mailgun api脚本,一个是我写的,另一个是我在网上发现的,非常完美,我用相同的域/api密钥尝试了这两个脚本 这一个可以从github gist复制粘贴 这一款很有魅力 <?php function send_mailgun($email, $body) { $domain = "SendingDomain"; $config = array(); $config['api_key'] = "key-mailgunkey"; $config[

我有两个mailgun api脚本,一个是我写的,另一个是我在网上发现的,非常完美,我用相同的域/api密钥尝试了这两个脚本 这一个可以从github gist复制粘贴

这一款很有魅力

<?php
function send_mailgun($email, $body) {
    $domain = "SendingDomain";
    $config = array();
    $config['api_key'] = "key-mailgunkey";
    $config['api_url'] = "https://api.mailgun.net/v3/" . $domain . "/messages";
    $message = array();
    $message['from'] = "Mailgun <user@SendingDomain>";
    $message['to'] = $email;
    $message['h:Reply-To'] = "<user@SendingDomain>";
    $message['subject'] = "Eye-Catching Subject Line";
    $message['html'] = $body;
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $config['api_url']);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_USERPWD, "api:{$config['api_key']}");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $message);
    $result = curl_exec($curl);
    curl_close($curl);
    return $result;
}
echo send_mailgun("personal@domain.com", "Body of the message here!");
?>

这些你忘记的小事会让你发疯

curl_setopt($curl, CURLOPT_USERPWD, 'api:key-mailgunkey'); 
应以“api:”作为前缀,如下所示


正是这种差异让骆驼们重新振作起来

谢谢,这真的很有帮助。我不喜欢代码中有太多的库,我喜欢减少攻击面。
curl_setopt($curl, CURLOPT_USERPWD, 'key-mailgunkey'); 
curl_setopt($curl, CURLOPT_USERPWD, 'api:key-mailgunkey');