首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Send grid api密钥发送邮件

使用Send grid api密钥发送邮件
EN

Stack Overflow用户
提问于 2015-10-06 17:44:01
回答 4查看 5.7K关注 0票数 2

我使用send grid来发送邮件。这是我使用的脚本。

代码语言:javascript
复制
$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_userapi_key替换为新生成的api key namekey,但邮件无法发送。

EN

回答 4

Stack Overflow用户

发布于 2016-01-01 09:25:42

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

代码语言:javascript
复制
$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);
票数 6
EN

Stack Overflow用户

发布于 2015-10-07 17:58:19

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

票数 3
EN

Stack Overflow用户

发布于 2015-10-06 18:08:49

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

尝试删除api行,并在api_key中使用api_user密钥。应该能行得通。

有关更多信息,请访问:https://sendgrid.com/docs/Integrate/Code_Examples/php.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32966749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档