php sendgrid — использование PHP с примером cURL — не работает

Я пытаюсь использовать тот же код, который размещен на веб-сайте sendgrid, и использовать функцию cURL в PHP для запроса API sendgrid.

Код, который я использую:

<?php

$url = 'https://api.sendgrid.com/';
$user = 'USERNAME';
$pass = 'PASSWORD';

$params = array(
'api_user'  => $user,
'api_key'   => $pass,
'to'        => '[email protected]',
'subject'   => 'testing from curl',
'html'      => 'testing body',
'text'      => 'testing body',
'from'      => '[email protected]',
);$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);
// Tell PHP not to use SSLv3 (instead opting for TLS)
curl_setopt($session, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

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

// print everything out
print_r($response);

?>

Но каждый раз, когда я запускаю его, я получаю следующую ошибку:

Примечание: использование неопределенной константы CURL_SSLVERSION_TLSv1_2 — предполагается, что CURL_SSLVERSION_TLSv1_2

Я буквально отыскивал Google, но не смог найти никакого решения. Пожалуйста помоги.

Спасибо!

1

Решение

Я успешно получил приведенный выше код, работающий следующим образом …
(Я должен также отметить, что это закончилось в моем спаме из-за содержания сообщения!)

$url = 'https://api.sendgrid.com/';
$user = 'USERNAME';
$pass = 'PASSWORD';

$params = array(
'api_user'  => $user,
'api_key'   => $pass,
'to'        => '[email protected]',
'subject'   => 'testing from curl',
'html'      => 'testing body',
'text'      => 'testing body',
'from'      => '[email protected]',
);

$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);
// Tell PHP not to use SSLv3 (instead opting for TLS)
//curl_setopt($session, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);

//Turn off SSL
curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);//New line
curl_setopt($session, CURLOPT_SSL_VERIFYHOST, false);//New line

curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

// obtain response
$response = curl_exec($session);

// print everything out
var_dump($response,curl_error($session),curl_getinfo($session));

curl_close($session);
2

Другие решения

Какую версию PHP вы используете?

От http://php.net/manual/en/curl.constants.php:

CURL_SSLVERSION_TLSv1_2 (целое число)
Доступно с PHP 5.5.19 и 5.6.3

На вашем сервере, вероятно, установлена ​​более низкая версия, чем эта, а константа не определена.

1

По вопросам рекламы [email protected]