How can I send more than one 'email' with 'phpmailler' it always gives this error 'Mail error: You must provide at least one email address.' I'm developing a newsletter system that will select all the registered emails but it always does. detail I get the emails by a 'variable' and step it to send who will receive the emails.
My code:
$nome = "leonardo"; // Pega o valor do campo Nome
$assunto = "sadasdsad"; // Pega o valor do campo Telefone
$email = "[email protected]"; // Pega o valor do campo Email
$mensagem = "asdasdsadsadsadsad"; // Pega os valores do campo Mensagem
// Variável que junta os valores acima e monta o corpo do email
$Vai = "Nome: $nome\n\nE-mail: $email\n\nAssunto: $assunto\n\nMensagem: $mensagem\n";
require_once("phpmailer/class.phpmailer.php");
$mysqli = mysqli_connect("localhost","root", "", "projeto") or die(mysqli_connect_error());
$query = "SELECT * FROM newsletter";
$result = $mysqli->query($query);
$emails = array();
while($row = $result->fetch_array()){
$emails[] = $row['mail'];
}
define('GUSER', '[email protected]'); // <-- Insira aqui o seu GMail
define('GPWD', 'gmail123'); // <-- Insira aqui a senha do seu GMail
function smtpmailer($para, $de, $de_nome, $assunto, $corpo) {
global $error;
$mail = new PHPMailer();
$mail->IsSMTP(); // Ativar SMTP
$mail->SMTPDebug = 0; // Debugar: 1 = erros e mensagens, 2 = mensagens apenas
$mail->SMTPAuth = true; // Autenticação ativada
$mail->SMTPSecure = 'ssl'; // SSL REQUERIDO pelo GMail
$mail->Host = 'smtp.gmail.com'; // SMTP utilizado
$mail->Port = 465; // A porta 587 deverá estar aberta em seu servidor
$mail->Username = GUSER;
$mail->Password = GPWD;
$mail->SetFrom($de, $de_nome);
$mail->Subject ="gmail - Contato";
$mail->Body = $corpo;
if(count($para) > 1){
foreach($para as $email){
$mail->AddAddress($email);
}
}else{
$mail->AddAddress($para);
}
if(!$mail->Send()) {
$error = 'Mail error: '.$mail->ErrorInfo;
return false;
} else {
$error = 'Mensagem enviada!';
return true;
}
}
var_dump($emails);
// Insira abaixo o email que irá receber a mensagem, o email que irá enviar (o mesmo da variável GUSER),
//o nome do email que envia a mensagem, o Assunto da mensagem e por último a variável com o corpo do email.
if (smtpmailer($emails, '$email', '$nome', '$assunto', $Vai)) {
echo"<script type=\"text/javascript\">alert(\"Sua Mensagem foi Enviada com Sucesso!\");
history.go(-1);
</script>\n";
}
if (!empty($error)) echo $error;