Sendgrid Azure PHP

Я новичок в php, azure и sendgrid.

вот какой код я нашел, что я пытаюсь использовать для html-формы.

<!-- BEGINNING OF CONTACT FORM --> <div class="section-page-landing" id="contact"> <div class="inner-section"> <div class="contain"> <center><h2>Contact Me</h2> <form class="contact" action="a_test_mailer_processor.php" method="post"> <p>Name:</p> <!-- Can choose to customize form.html inputs starting here as needed, but be sure to reference any changes in mailer.php post fields--> <input type="text" name="name" /> <p>E-mail:</p> <input type="text" name="email" /> <p>Subject:</p> <input type="text" name="subject" /> <p>Message:</p> <textarea name="message" syle="width: 45%; text-align: center;">Please leave a short message here</textarea></p> <input class="send" type="submit" value="Send"> <!-- Send button--> </form></center> </div> </div> </div> <!--end contact form--> 

Вот PHP, который я пытаюсь использовать

Я обновил код следующим образом, заменив мои учетные данные и адрес электронной почты. Никаких ошибок, но до сих пор не работает для меня. Есть ли что-то еще, что я могу проверить?

 <?php ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); var_dump(function_exists('curl_version')); $url = 'https://api.sendgrid.com/'; $user = 'MYSENDGRIDUSERNAME'; $pass = 'MYSENDGRIDPASSWORD'; $params = array( 'api_user' => $user, 'api_key' => $pass, 'to' => 'MYEMAILADDRESS', 'subject' => 'testing from curl', 'html' => 'testing body', 'text' => 'testing body', 'from' => 'MYEMAILADDRESS', ); $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); ?> 

И вот ошибки, которые я получаю. bool (true) Примечание: неопределенная переменная: curl in D: \ home \ site \ wwwroot \ a_test_mailer_processor.php в строке 36 Предупреждение: curl_setopt () ожидает, что параметр 1 будет ресурсом, null указан в D: \ home \ site \ wwwroot \ a_test_mailer_processor.php в строке 36

Я попробовал просто удалить строку 36, curl_setopt ($ curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); и ошибки были остановлены, но форма еще не была отправлена ​​/ получена. Позвольте мне знать, что я делаю неправильно.

Поскольку вы не определяли $curl перед настройкой параметров с помощью curl_setopt , и вот пример кода на странице примеров кода SendGrid , попробуйте:

 <?php $url = 'https://api.sendgrid.com/'; $user = 'USERNAME'; $pass = 'PASSWORD'; $params = array( 'api_user' => $user, 'api_key' => $pass, 'to' => 'example3@sendgrid.com', 'subject' => 'testing from curl', 'html' => 'testing body', 'text' => 'testing body', 'from' => 'example@sendgrid.com', ); $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 , мы можем напрямую установить целочисленную переменную в CURLOPT_SSLVERSION . Мы можем найти информацию в http://php.net/manual/en/function.curl-setopt.php :

Один из CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) или CURL_SSLVERSION_TLSv1_2 (6).

установить как: curl_setopt($session, CURLOPT_SSLVERSION, 6);

И я должен установить дополнительный вариант:

curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);

так что мне удастся установить мой запрос на SendGrid Server.