Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dyego-s

Envio de E-mail de lista txt

Recommended Posts

Olá pessoal!!

 

Estou precisando de uma ajuda de vcs!!!!

 

Estou fazendo um programa para envio de e-mail com smtp em PHP, já fiz uma boa parte, porém ele envia só que os endereços estão no código...

 

Tem como os e-mails que serão enviados virem de uma lista externa em um txt, lá vai estar assim:

 

dyego-s@hotmail.com

dyego-s@hotmail.com

dyego-s@hotmail.com

dyego-s@hotmail.com

dyego-s@hotmail.com

dyego-s@hotmail.com

dyego-s@hotmail.com

dyego-s@hotmail.com

dyego-s@hotmail.com

dyego-s@hotmail.com

.

.

.

 

Eu teria que adptar o cod para que tipo clicando no botão e ia buscar o txt que vai estar em algum lugar.

 

*Como ficaria para atender essa situação??

*Nessa lista terá o endereço de 100 usuários que receberão as mensagens, será que o PHP consegue enviar para esssa quantidade de uma vez só?

 

Achei esse cod na web + n funionou....

 

 

<?php
// lista.txt é onde está os e-mails, um em cada linha
$lendo = @fopen("C:\lista.txt","r");
if (!$lendo) {
echo "Erro ao abrir a URL.<br>";
exit;
}

// assunto do e-mail enviado
$assunto = "Assunto de teste";

// mensagem do e-mail enviado
$mensagem = "sua mensagem aqui";

// seu e-mail
$seu_email = "eu@eu.com";

$posicao = 0;
while (!feof($lendo)) {
$linha = fgets($lendo,256);
mail("$linha","$assunto","$mensagem","From: < $seu_email > Content-type: text/txt");
}
echo "e-mails enviado com sucesso.";
fclose($lendo);
?>
Esse é o o cod que uso... ele está 99% só falta fazer essa adaptação.

 

 

<?php

include("phpmailer/class.phpmailer.php");
set_time_limit(0);
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.mail.yahoo.com.br";
$mail->SMTPAuth = true;
$mail->Username = "teclado_diego";
$mail->Password = "*****";
$mail->From = "teclado_diego";
$mail->FromName = "50 E-MAIL - NOME DE EXIBICAO";
//Enderecos que devem ser enviadas as mensagens****






//*************************************************

$mail->WordWrap = 99;
$mail->IsHTML(true);
// recebendo os dados od formulario
if(isset($_POST['nome'])){
	$nome	 = ucwords($_POST['nome']);
	$email 	  = $_POST['email'];
	$mensagem   = $_POST['mensagem'];
	// informando a quem devemos responder 
	//ou seja para o mail inserido no formulario
	$mail->AddReplyTo("$email","$nome");
	//criando o codigo html para enviar no email
	//vocepode utilizar qualquer tag html ok
	$msg  = "";
	$msg .= "<b> Nome:</b> $nome<br>\n";
	$msg .= "<b> E-mail:</b> $email<br>\n";
	$msg .= "<b> Mensagem:</b> $mensagem<br>\n";
 }

$mail->Subject = "50 EMAIL";
$mail->Body = $msg;
if(!$mail->Send())
{
echo "<P>houve um erro ao  enviar o email! </P>".$mail->ErrorInfo;
exit;
}
echo "<P>Mensagem enviada ok";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usando file(), cada linha do arquivo ficará num índice do vetor.

 

Se quiser mandar diversas mensagens, uma para cada destinatário, poderá fazer um loop que percorre o vetor e faz uma chamada a mail() (ou outra função de envio de e-mail) a cada repetição.

 

Se preferir mandar uma s[ó mensagem, com vários destinatários, poderá usar implode():

 

$emails = file("emails.txt");
$emails = implode(","), $emails);
mail($emails, ...);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Beraldo, obgd pela atenção!! Porém preciso que a forma de envio seja clicando em um botão e informando um arquivo .txt, ou seja ele terá que ler esse arquivo onde terá uma lista de e-mails um em cada linha. Eu refiz o cod só que ele não funciona por que falra tratar a parte que lê o txt.

 

Aqui é o formulário de envio:

 

testelogin.php

 

<?php

 

session_start();

if($_GET['logout']=="true") {

//destruimos a sessão

session_destroy();

//redirecionamos o user pro login

header('Location: index.php');

//en caso de não ter feito o direcionamento.

die();

}

//MUITO IMPORTANTE

//Se não iniciar-mos a sessão não vamos ter acesso aos dados da mesmo, e por isso a

//verificação iria falhar.

 

?>

 

<?php

//apos a sessão iniciada, basta verificar o valor da variavel $_SESSION['identificado']

//caso seja diferente de "true" é considerada invalida;

if($_SESSION['identificado']!=true) {

echo "Utilizador ".$_SESSION['user']."<br />A sua sessão não foi reconhecida.";

die();

}

else {

 

}

 

?>

 

<!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" />

 

</head>

<title>Formulario de Envio de E-mail</title>

<meta http-equiv="Content-Type" content="text/html;

charset=iso-8859-1"><style type="text/css">

#todoform {

background:#4f4f4f;

font:12px arial, verdana, helvetica, sans-serif;

border-top:8px solid #cfcfcf;

border-left:8px solid #cfcfcf;

border-right:8px solid #696969;

border-bottom:8px solid #696969;

border-collapse:collapse;

color:#ff9900;

}

#todoform th {

background:#000000;

padding:3px;

font: bold 15px arial, verdana, helvetica, sans-serif;

border-bottom:1px solid #ff9900;

}

#todoform td {

padding:3px;

}

#todoform input {

background:#b5b5b5;

border:1px dashed #ff9900;

}

#todoform textarea {

border:1px dashed #ff9900;

background:#b5b5b5;

}

#todoform input.botao {

background:#000000;

color:#ffffff;

border:2px solid #ffffff;

}

</style>

</head>

<body BGCOLOR="#000000">

<form name="contato" action="contato.php" method="post">

 

<table id="todoform" align="center">

 

<tr>

<th colspan="2"><?php echo "Bem Vindo: ".$_SESSION['user'];?></th>

</tr>

 

<tr>

<th colspan="2">Formulario de Envio de E-mail</th>

</tr>

 

<tr>

<td><label>De</label>

</td>

<td><input name="nome" id="nome" type="text" size="59" maxlength="1000"></td>

</tr>

 

<tr>

<td><label>Assunto</label></td>

<td><input name="subject" type="text" size="59" maxlength="1000"></td>

</tr>

 

<!--*********NESA PARTE ELE IRA DIRECIONAR PARA O TXT EXTERNO********************* -->

 

<tr>

<td><label>Escolher arquivo</label></td>

<td><input name="email" type="file" id="email"/>

<input name="submit" type="submit" value="Enviar" class="botao"> </td>

</tr>

********************************************************************************

* -->

 

<tr>

<td><label>Mensagem</label></td>

<td><textarea name="mensagem" id="mensagem" cols="45" rows="15" ></textarea></td>

</tr>

<td> </td>

<tr>

<th colspan="2"><?php echo $_SESSION['']." <a href=\"".$_SERVER['PHP_SELF']."?logout=true\">SAIR</a>"?></th>

</tr>

</td>

</tr>

</table>

</form>

</body>

</html>

 

 

 

 

 

 

 

********************************************************************************

****************

E principal... o cod que deverá ler o txt e enviar o e-mail

 

contato.php

 

<?php

include("phpmailer/class.phpmailer.php");

//instancia a objetos

$mail = new PHPMailer();

// mandar via SMTP

$mail->IsSMTP();

$mail->Mailer = "smtp";

// Seu servidor smtp

$mail->Host = "smtp.mail.yahoo.com.br";

// habilita smtp autenticado

$mail->SMTPAuth = true;

$mail->Username = "uploadx10";

$mail->Password = "****";

//email utilizado para o envio, pode ser o mesmo de username

$mail->From = "uploadx10";

$mail->FromName = $_POST['nome']; //NOME DE EXIBICAO

 

 

 

 

//ESSA PARTE AQUI QUE É O PROBLEMA... COMO FAZER PRA ELA LER O TXT INDICADO NO FORM???

 

$lendo = @fopen(";",$_POST['email']);

if (!$lendo) {

echo "Erro ao abrir a URL.<br>";

exit;

}

 

$emailList = explode(";",$_POST['email']);

$mail->IsHTML(true); //enviar em HTML

foreach($emailList as $email){

$mail->AddAddress($email);// envia email

 

}

 

 

 

 

 

 

 

$mail->WordWrap = 50;

// recebendo os dados od formulario

if(isset($_POST['nome'])){

$nome = ucwords($_POST['nome']);

$email = $_POST['email'];

$mensagem = $_POST['mensagem'];

// informando a quem devemos responder, ou seja para o mail inserido no formulario

$mail->AddReplyTo("$email","$nome");

//criando o codigo html para enviar no email

//vocepode utilizar qualquer tag html ok

$msg = "";

$msg .= "<b> Nome:</b> $nome<br>\n";

$msg .= "<b> E-mail:</b> $email<br>\n";

$msg .= "$mensagem";

}

 

$mail->Subject = $_POST['subject'];

//adicionando o html no corpo do email

$mail->Body = $msg;

//$mail->setHTMLBody($msg);

//enviando e retornando o status de envio

if(!$mail->Send())

{

echo "<P>houve um erro ao enviar o email! </P>".$mail->ErrorInfo;

//$mail->ErrorInfo informa onde ocorreu o erro

exit;

}

echo "<P>Mensagem enviada ok";

?>

 

SocorrooOoOo......... http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.