Originalmente inviato da
alemoppo
Io
avevo già indicato dove è l'errore: è sufficiente leggere il messaggio di errore.
Non puoi fare così:
Codice PHP:
$email->setFrom("LA_MIA_MAIL_SENDGRID_DA_AUTENTICARE");
Quel metodo accetta due parametri, tu ne hai impostato solamente uno. Riguarda il codice originale nella mia precedente discussione:
Codice PHP:
$email->setFrom("test@example.com", "Example User");
Stesso discorso per il metodo "addTo".
Io ti consiglierei di iniziare con il codice originale (cambiando solo il campo "indirizzo destinatario" e l'api-key), poi modificarlo di volta in volta e, quando non funziona, cercare di capire il perché.
p.s: non ho autenticato alcuna email, ma ho riprovato e lo script continua a funzionare correttamente ad inviare email.
Ciao!
Codice:
<?php
$mysqli = new mysqli('localhost', 'provalibe', '', 'my_provalibe');
if(isset($_POST['register'])) {
$mail = $_POST['mail'];
$password = $_POST['password'];
$code = substr(md5(mt_rand()), 0, 15);
$verifyId = rand();
$mysqli->query("INSERT INTO verify (verifyId, mail, password, code) VALUES ('$verifyId', '$mail', '$password', '$code')");
require("sendgrid-php/sendgrid-php.php");
$email = new \SendGrid\Mail\Mail();
$email->setFrom("MY_EMAIL", "Service");
$email->setSubject("Attivazione Account");
$email->addTo("$mail", "Utente");
$email->addContent("text/plain", "Il tuo codice di attivazione è $code.<br>Clicca <a href=\"verification.php?id=$verifyId&code=$code\">qui</a> per attivare il tuo account.");
$email->addContent(
"text/html", "<strong>Il tuo codice di attivazione</strong>"
);
$sendgrid = new \SendGrid('APY_KEY');
try {
$response = $sendgrid->send($email);
print $response->statusCode() . "\n";
print_r($response->headers());
print $response->body() . "\n";
} catch (Exception $e) {
echo 'Caught exception: '. $e->getMessage() ."\n";
}
?>
Anche facendo il calco del codice che hai fornito nel tutorial, compare lo stesso errore che ti avevo indicato precedentemente [400]...