2016-08-03 10 views
0

Ich bin mir sicher, dass dies eine einfache Lösung ist, ich versuche, ein Sendgrid einzurichten, um Bestätigungs-E-Mails zu senden.SendGrid: Fehlendes Argument 1 für 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); 

Bei der Ausführung des Codes ich diese Fehlermeldungen erhalten:

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

Ich bin mit PHP Version 5.6.16

Ich bin sicher, dass ich etwas Dummes

Antwort

1

Es verpasst haben Es wurden einige Aktualisierungen der SendGrid-PHP-Bibliothek vorgenommen. Siehe das Beispiel aus der readme: 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(); 

Sie diesen Fehler erhalten, weil die $email = new SendGrid\Email();, die zwei Parameter benötigt wie hier https://github.com/sendgrid/sendgrid-php/blob/master/lib/helpers/mail/Mail.php#L845 gesehen, die $name und $email sind.

$name können Sie null verlassen, wenn Sie nicht möchten, einen Namen von.

Auch die Verwendung von Benutzername und Passwort wie $sendgrid = new SendGrid($user,$pass); veraltet wurde, siehe hier: https://github.com/sendgrid/sendgrid-php/blob/master/lib/SendGrid.php#L34

Sie benötigen einen API-Schlüssel zu erstellen und nutzen. Siehe hier: https://app.sendgrid.com/settings/api_keys

+0

Wie können wir Anhang hier hinzufügen? – user3419778

+0

HI dort, ich habe nur die gleichen Schritte, aber zeigt diesen Fehler: Array {"Fehler": [{"Nachricht": "Berechtigung verweigert, falsche Anmeldeinformationen", "Feld": null, "Hilfe": null}]} – creativeartbd

0

Ich war auch mit ähnlichen Art von Problem für Send Grid in Angriff genommen.

Ich habe es funktioniert, indem Sie folgenden Header hinzugefügt.

"Inhaltstyp": "application/json; charset = utf8"