我使用send grid来发送邮件。这是我使用的脚本。
$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 key id和长密钥生成的。
如何通过web api调用使用此密钥。我正在将api_user和api_key替换为新生成的api key name和key,但邮件无法发送。
发布于 2016-01-01 09:25:42
我今天也遇到了这个问题。要添加到@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);发布于 2015-10-07 17:58:19
要使用API密钥发送,您需要在请求中添加一个Authorization头部。它是一个HTTP Basic auth报头,这意味着它的格式是username:password,base64编码,作为一个承载令牌。您可以在文档中使用see an example。
发布于 2015-10-06 18:08:49
我使用Send Grid php库,在这里我可以使用用户名和密码,或者只使用API密钥。
尝试删除api行,并在api_key中使用api_user密钥。应该能行得通。
有关更多信息,请访问:https://sendgrid.com/docs/Integrate/Code_Examples/php.html
https://stackoverflow.com/questions/32966749
复制相似问题