Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Imasteres!
Estou iniciando nos desenvolvimentos PHP e MySQL e estou criando um sistema que faz uma SELECT no DB e envia emails com autenticação SMTP pelo "class.phpmailer.php", porém, para enviar para mais de um destinatário, tem q adicionar uma linha no arquivo. Gostaria que me sessem dicas de como eu poderia afzer a select e enviar para os "vários" destinatários de uma vez só.
Abraço
cara tem como comentar mais o código, pq eu não intendi naum.
vamo la né =P
você sabe recupera os dados do SELECT?
você ja sabe faze as configurações do PHPmailer?
diga-me oq você ja tem ai...
>
vamo la né =P
você sabe recupera os dados do SELECT?
você ja sabe faze as configurações do PHPmailer?
diga-me oq você ja tem ai...
cara meu código tah assim, e eu não sei o q faze, a unica coisa q falta é enviar a mensagem da textarea, mas os destinatáios q eh o meu problema. vê ai:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<? include ("includes/conexao.php"); ?>
</head>
<body>if(isset($_POST['enviar_news']) && $_POST['enviar_news'] == 'envia'){
$seleciona = $emails = mysql_query("SELECT email FROM news_email WHERE status = 'ativo'")
or die(mysql_error());
$contar_emails = mysql_num_rows($emails);
if($contar_emails <= '0'){
echo "nenhum email encontrado";
}else{
while($res_email = mysql_fetch_array($emails)){
$email = $res_email[0];
?>
<?
require("PHPMailer/class.phpmailer.php"); // Chama o arquivo da classe
$mail = new PHPMailer(); // Cria a instância
$mail->SetLanguage("br"); // Define o Idioma
$mail->CharSet = "iso-8859-1"; // Define a Codificação
$mail->IsSMTP(); // Define que será enviado por SMTP
$mail->Host = "smtp.host"; // Servidor SMTP
$mail->SMTPAuth = true; // Caso o servidor SMTP precise de autenticação
$mail->Username = "usuario"; // Usuário ou E-mail para autenticação no SMTP
$mail->Password = "senha"; // Senha do E-mail
$mail->IsHTML(true); // Enviar como HTML
$mail->From = $remetente = "newsletter@strik.com.br"; // Define o Remetente
$mail->FromName = $nomeremetente = "News Strik"; // Nome do Remetente
$mail->AddAddress("PARA_email"); // Email e Nome do destinatário
// Estes campos a seguir são opcionais, caso não queira usar, remova-os
$mail->AddReplyTo("email","nome"); // E-mail de Resposta
//$mail->AddCC("outroemail@dominio.com.br";"Nome"); // Envia Cópia
//$mail->AddBCC("meuemail@dominio.com.br";"Nome"); // Envia Cópia Oculta
// Se você quiser anexar aquivos, pode utilizar os comandos abaixo, caso não vá enviar anexos, remova os comandos
/*
$mail->AddAttachment("/var/tmp/file.tar.gz"); // Arquivo Anexo 1
$mail->AddAttachment("/tmp/image.jpg","new.jpg"); // Arquivo Anexo 2
*/
// Configuração de Assuntos e Corpo do E-mail
$data = date('d/m/Y H:i');
$mail->Subject = $assunto = $_POST['assunto']; // Define o Assunto<br />
<br />
<table width=\"500\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td style=\"font: 12px Georgia, 'Times New Roman', Times, serif; color:#333;\"><a href=\"localhost/newsletter/remove.php?email=$email\"> clique aqui.</a>
<br />
<br /></td>
</tr>
</table>// Fazemos o envio do email
if(!$mail->Send()){
print "Ocorreu um erro no envio da Mensagem.<br />";
print "Erro: ".$mail->ErrorInfo; print "Mensagem enviada com sucesso para <strong>$email</strong>!<br />";
}
?>
<?
}
}
}
?>
<form name="enviar_news" action="<?php echo $_SERVER["PHP_SELF"]; ?>"" method="post" enctype="multipart/form-data">
<label><span>Assunto:</span>
<input type="text" name="assunto" />
</label>
<br />
<label><span>Mensagem:</span>
<textarea name="mensagem" rows="10" cols="100"></textarea>
</label>
<br />
<input type="hidden" name="enviar_news" value="envia" />
<input type="submit" name="Enviar" value="Enviar" />
</form>
</body>
</html>então nesse seu 'while' pode faze por ele..
observe meu codigo.. veja que recupero os dados do SELECT.. e passo pro foreach..
você faz a msm coisa so que passa pro seu while..
você teria que passa seu codigo do phpMailer acima do SELECT..
require("PHPMailer/class.phpmailer.php"); // Chama o arquivo da classe
$mail = new PHPMailer(); // Cria a instância
$mail->SetLanguage("br"); // Define o Idioma
//.. continua o codigo
if(isset($_POST['enviar_news']) && $_POST['enviar_news'] == 'envia'){
// ...segue o resto do codigo
while($res_email = mysql_fetch_array($emails)){
$mail->AddAddress($res_email['Email'], $res_email['Nome']);//nome dos campos no banco de dados
if (!$mail->Send()) {
$erro_mail[] = sprintf('Error:[ %s ] para Email: %s <br>', $mail->ErrorInfo(), $res_email['email']);
continue;
}
$mail->ClearAddresses();
}velho tá quase zero. mas não funfo o código:
if (!$mail->Send()) {
$erro_mail[] = sprintf('Error:[ %s ] para Email: %s <br>', $mail->ErrorInfo(), $res_email['email']);
continue;
}
$mail->ClearAddresses();
}
e também quando manda pra 3 pessoas por exemplo, ele manda pra primeira, quando vai mandar pra segunda, ele manda denovo para a primeira, quando manda pra terceira ele manda novamente pra primeira, segunda e terceira. Ele tá fazendo um fatorial (hahahah) como resolvo isso??
tenta com foreach no lugar do while =X
usa o mysql_fetch_assoc(); no lugar do fetch_array();
como assim não funfo o codigo?
se ta enviando e prq ta funcionando ue kkkkkk..
e para de faze QUOTE nos post os mod vai t puxa a orelha=X
usa o responder Azul
manolo creio q agora eu consigo. antes tava funfando, mas se tu ja falo essas dica aew eu vo conseguir melhorar. Valeu mesmo cara.
qualquer coisa eu te enxo o saco denovo kkkk
uai eu tenho um sistema assim aki de newlester so falta o cronjob ___ o resto ta filézinho kkkk
vai la a forma que faço...
$data = $newletter->fetchAll();// pegando os emails do DB
foreach($data as $sends){
// suponhamos que seu phpmailer ja esteja configurado =D
$mail->AddAddress($sends['Email'], $sends['Nome']);
if (!$mail->Send()) {