我正在使用发送网格发送邮件。这是我使用的脚本。
$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);
Run Code Online (Sandbox Code Playgroud)
它工作正常并且可以成功发送邮件。
我将不使用发送网格api密钥发送邮件而不使用密码。我从' app.sendgrid.com/settings/api_keys'得到了api键ID和长键。
如何通过网络api调用使用此密钥。我更换api_user和api_keyS采用新生成的api key name和key,但邮件没有发送。
我今天也遇到了这个问题。要添加到@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);
Run Code Online (Sandbox Code Playgroud)