내 모든 사용자에게 뉴스 레터를 보내는 스크립트입니다. 아래 코드에는 테스트를위한 제한이 있습니다. 나는 현재이 오류가 있어요 :sendgrid의 PHP 배열 오류
여기Catchable fatal error: Argument 1 passed to SendGrid\Email::setTos() must be of the type array, string given, called in /var/www/web/web/sengrid.php on line 44 and defined in /var/www/web/web/sendgrid-php/lib/SendGrid/Email.php on line 90**
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
require_once ('inc/db.php');
require("sendgrid-php/sendgrid-php.php");
$sendgrid = new SendGrid('myapikey');
$email = new SendGrid\Email();
$resultado = mysqli_query($dbc,"SELECT email, hash FROM newsletter WHERE enviado = '0' AND newsletter = '1' LIMIT 5");
$totalRows = mysqli_num_rows($resultado);
if ($totalRows == 0){
echo "<p>No results</p>";
}
$rss = "";
if(!$xml = simplexml_load_file('http://www.test.com.ar/rss.php')) {
echo 'unable to load XML file';
} else {
foreach($xml->channel->aviso as $aviso) {
$rss .= "<div class='box-blanco'>";
$rss .= "<a href='$aviso->link' class='link'><p class='titulo'>$aviso->title</p></a>";
$rss .= "<p class='text-muted-2'>$aviso->provincia $aviso->remuneracion</p>";
$rss .= "</div><div class='col-separador-h'></div>";
}
}
는 setTos를 사용하여 모든 이메일을 보내기위한 루프입니다.
while ($usuario = mysqli_fetch_array($resultado, MYSQLI_ASSOC)) {
$usermail = $usuario['email'];
$hash = $usuario['hash'];
$email-> setTos($usermail)
->setFrom("[email protected]")
->setFromName("test")
->setReplyTo("[email protected]")
->setSubject("Convocatorias Semanales")
->setHtml('<html><body>TEST</body></html>');
try {
$result = $sendgrid->send($email);
mysqli_query($dbc, "UPDATE newsletter SET enviado = '1' WHERE email='$usermail' ");
echo "enviado";
} catch(\SendGrid\Exception $e) {
echo $e->getCode() . "\n";
foreach($e->getErrors() as $er) {
echo $er;
}
}
}
?>
어떻게 해결할 수 있습니까? 나는 그것을 알 수 없다. https://github.com/sendgrid/sendgrid-php/tree/master/lib/helpers/mail
을 난 아직도 내가 이미 편집'$ 이메일 -> setTos ($ ALL_USERS를) 만든 배열 – Santiago
@Santiago과 같은 오류가 있어요' – Ghost