2016-08-03 3 views
0

Я уверен, что это простое решение, я пытаюсь настроить sendgrid для отправки подтверждающих писем.SendGrid: Отсутствует аргумент 1 для SendGrid Email :: __ construct()

require 'sendgrid-php/vendor/autoload.php'; 
$sendgrid = new SendGrid($user,$pass); 
$email = new SendGrid\Email(); 

$email->addTo($sEmail) 
     ->setFrom($email) 
     ->setSubject("Sending with SendGrid is Fun") 
     ->setHtml("and easy to do anywhere, even with PHP"); 

$sendgrid->send($email); 

После выполнения кода я получаю эти сообщения об ошибках:

Warning: Missing argument 1 for SendGrid\Email::__construct() 

Я бегу версии PHP 5.6.16

Я уверен, что я пропустил что-то глупое

ответ

1

Там были некоторые обновления в библиотеке SendGrid-PHP. Смотрите пример из ридми: https://github.com/sendgrid/sendgrid-php

<?php 
// If you are using Composer 
require 'vendor/autoload.php'; 

// If you are not using Composer (recommended) 
// require("path/to/sendgrid-php/sendgrid-php.php"); 

$from = new SendGrid\Email(null, "[email protected]"); 
$subject = "Hello World from the SendGrid PHP Library!"; 
$to = new SendGrid\Email(null, "[email protected]"); 
$content = new SendGrid\Content("text/plain", "Hello, Email!"); 
$mail = new SendGrid\Mail($from, $subject, $to, $content); 

$apiKey = getenv('SENDGRID_API_KEY'); 
$sg = new \SendGrid($apiKey); 

$response = $sg->client->mail()->send()->post($mail); 
echo $response->statusCode(); 
echo $response->headers(); 
echo $response->body(); 

Вы получаете эту ошибку из-за $email = new SendGrid\Email();, которая нуждается в двух параметров, как показано здесь https://github.com/sendgrid/sendgrid-php/blob/master/lib/helpers/mail/Mail.php#L845, которые являются $name и $email.

$name вы можете оставить null, если вы не хотите от имени.

Кроме того, использование имени пользователя и пароля, как $sendgrid = new SendGrid($user,$pass); осуждался, смотрите здесь: https://github.com/sendgrid/sendgrid-php/blob/master/lib/SendGrid.php#L34

Вам нужно создать ключ API и использовать его. См. Здесь: https://app.sendgrid.com/settings/api_keys

+0

Как мы можем добавить здесь приложение? – user3419778

+0

HI там, я просто выполнил те же шаги, но показывая эту ошибку: Array {"errors": [{"message": "Permission denied, wrong credentials", "field": null, "help": null}]} – creativeartbd

0

Я также занимался аналогичной проблемой для отправки сетки.

Я получил это, добавив следующий заголовок.

«Content-Type»: «application/json; charset = utf8»

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