使用sendgrid api发送电子邮件 - 显示回复[{"错误":["错误的用户名/密码"],"消息":"错误" }]

时间:2017-10-03 06:42:20

标签: php email curl sendgrid sendgrid-api-v3

我试图用Sendgrid发送我的第一封电子邮件:

<?php 
$url = 'https://api.sendgrid.com/'; 
$user = 'bio'; //bio
$pass = 'xx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxx');';

// grabs HTML form's post data; if you customize the form.html parameters then you will need to reference their new new names here
$name = "a";
$email = "gd@gmail.com";
$subject = "fdfdfd gdfg";
$message = "dfgd fhg fghfd ";
// note the above parameters now referenced in the 'subject', 'html', and 'text' sections
// make the to email be your own address or where ever you would like the contact form info sent
$params = array(
    'api_user'  => $user,
    'api_key'   => $pass,
    'to'        => "developer@gmail.com", // set TO address to have the contact form's email content sent to
    'subject'   => "Contact Form Submission", // Either give a subject for each submission, or set to $subject
    'html'      => "<html><head><title> Contact Form</title><body>",
    'from'      => "contact@gmail.com", // set from address here, it can really be anything
  );
//curl_setopt($url, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
$request =  $url.'api/mail.send.json';
// Generate curl request
$session = curl_init($request);
// Tell curl to use HTTP POST
curl_setopt ($session, CURLOPT_POST, true);
// Tell curl that this is the body of the POST
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
// Tell curl not to return headers, but do return the response
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// obtain response
$response = curl_exec($session);
curl_close($session);

// print everything out
print_r($response);
?>

这是我遇到的错误:

{"errors":["Bad username / password"],"message":"error"}

我应该从哪里获取授权信息,以免我收到错误的用户名/密码错误?

2 个答案:

答案 0 :(得分:0)

拖放“ api_user”和“ api_key”字段并添加HTTP标头"Authorization: Bearer " . $pass(其中$ pass设置为您的API密钥)。

SendGrid's Web API v2 documentation恕我直言中存在错误,或者至少具有误导性。

答案 1 :(得分:0)

SELECT src.Id, src.[Date], src.Trend, 
  CASE
    WHEN Trend IS NULL THEN NULL
    ELSE ROW_NUMBER() OVER (PARTITION BY Id, Trend, MasterSeq-SubSeq ORDER BY [Date])
  END AS TrendCnt
FROM (
  SELECT *,  
    ROW_NUMBER() OVER(PARTITION BY Id ORDER BY [Date]) As MasterSeq,
    ROW_NUMBER() OVER(PARTITION BY Id, Trend ORDER BY [Date]) +1 As SubSeq
    FROM aaa
) src
ORDER BY [Date] DESC;