2016-08-30 4 views
0

Я использую сетку отправки для отправки по электронной почте на веб-почту сервера. Ниже приведен мой код. Я написал этот код, следуя инструкциям. Но я получаю сообщение об ошибке:Отправить сообщение с помощью Sendgrid api

Warning: rawurlencode() expects parameter 1 to be string, object given in /home/cwtestco/public_html/demo/active-fit-club/sendgrid-php/vendor/guzzle/guzzle/src/Guzzle/Http/QueryString.php on line 237 

Warning: Cannot modify header information - headers already sent by (output started at /home/cwtestco/public_html/demo/active-fit-club/sendgrid-php/vendor/guzzle/guzzle/src/Guzzle/Http/QueryString.php:237) in /home/cwtestco/public_html/demo/active-fit-club/index.php on line 53 

Код:

if($res != false){ 
    require_once ($_SERVER['DOCUMENT_ROOT'].'/demo/active-fit-club/sendgrid-php/vendor/autoload.php'); 
    require_once ($_SERVER['DOCUMENT_ROOT'].'/demo/active-fit-club/sendgrid-php/lib/SendGrid.php'); 
    require_once ($_SERVER['DOCUMENT_ROOT'].'/demo/active-fit-club/sendgrid-php/lib/SendGrid/Exception.php'); 

    $message = "Name : $name <br> Email : $email <br> Mobile : $mobile"; 
    $sendgrid = new SendGrid('myapikey'); 
    $email = new SendGrid\Email(); 
    $email 
     ->addTo("[email protected]") 
     ->setFrom($email) 
     ->setSubject("Contact mail") 
     ->setHtml($message); 

    try { 
     $sendgrid->send($email); 
     $_SESSION['success'] = true; 
     header("location:url"); 
     exit; 
    } catch(\SendGrid\Exception $e) { 
     // echo $e->getCode(); 
     // foreach($e->getErrors() as $er) { 
     //  echo $er; 
     // } 

     header("location:url"); 
     exit; 
    } 
} 

ответ

1

им, используя приведенный ниже код и его работу.

$url = 'https://api.sendgrid.com/'; 
$apiKey = 'SENDGRID_API_KEY'; 

//api library from sendgrid 
require_once "sendgrid/sendgrid-php.php"; 

$sendgrid = new SendGrid($apiKey); 
$email = new SendGrid\Email(); 

$email 
    ->addTo("[email protected]") 
    ->setFromName("Fromname") 
    ->setFrom("[email protected]") 
    ->setSubject("your subject goes here") 
    ->setText('') 
    ->setHtml("your email html content goes here"); 

if($sendgrid->send($email)) 
    echo "Mail sent"; 
else 
    echo "Failed"; 

вы можете получить файлы библиотеки из https://github.com/sendgrid/sendgrid-php

+0

где api, если нет API. Должны быть пользователь и пароль, но вы используете только пароль. – user254153

+1

я сделал изменения. нет необходимости в имени пользователя и пароле. вы можете пойти с apiKey – Tamil

1

Попробуйте переместить установки заголовка перед установкой переменной SESSION и установить $ _SESSION [ «успех»], чтобы быть «истинным» вместо истины:

try { 
     $sendgrid->send($email); 
     header("location:url");    
     $_SESSION['success'] = 'true'; 
     exit; 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^