使用send grid api key发送邮件

时间:2015-10-06 09:44:01

标签: php curl sendgrid

我使用发送网格发送邮件。 这是我使用的脚本。

$url = 'https://api.sendgrid.com/';
$params = array(
    'api_user'  => 'xxx',   // My send grid username
    'api_key'   => xxx',   // My send grid password
    'to'        => tomail,     
    'subject'   => 'sub',
    'html'      => 'message',
    'from'      => frommail,
);

$request =  $url.'api/mail.send.json';
$session = curl_init($request);
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
curl_close($session);

它运行正常并成功发送邮件。

我不使用发送网格api密钥来发送邮件而不使用密码。 我是从' app.sendgrid.com/settings/api_keys'生成的。得到api密钥id和长密钥。

如何在web api调用中使用此密钥。我用新生成的api_userapi_key替换了api key namekey,但邮件没有发送。

4 个答案:

答案 0 :(得分:5)

我今天也遇到了这个问题。添加@bwest提供的答案:

$pass = 'your api token' // not the key, but the token

$url = 'https://api.sendgrid.com/';

//remove the user and password params - no longer needed
$params = array(
    'to'        => tomail,     
    'subject'   => 'sub',
    'html'      => 'message',
    'from'      => frommail,
);

$request =  $url.'api/mail.send.json';
$headr = array();
// set authorization header
$headr[] = 'Authorization: Bearer '.$pass;

$session = curl_init($request);
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

// add authorization header
curl_setopt($session, CURLOPT_HTTPHEADER,$headr);

$response = curl_exec($session);
curl_close($session);

答案 1 :(得分:3)

要使用API​​密钥发送,您需要在请求中添加Authorization标头。它是一个HTTP Basic auth标头,意味着它的格式为username:password,base64编码,作为承载令牌。您可以在文档中see an example

答案 2 :(得分:0)

我使用Send Grid php库,我可以使用用户名和密码,或者只使用API​​密钥。

尝试删除api_user行并使用带有api_key的api密钥。它应该工作。

了解更多信息:https://sendgrid.com/docs/Integrate/Code_Examples/php.html

答案 3 :(得分:0)

使用带有Autorization: Bearer key标题的API密钥。