Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
$arr = explode(';', $frm_para);
foreach( $arr as $v ){
$arr2 = explode(' ', $v);
$email = end($arr2);
unset( $arr2[ key($arr2) ] );
$name = implode( ' ', $arr2 );
$mail->AddAddress($email, $name); //mudar aqui
$mail->AddCC($emailcc, $namecc); // Copia
$mail->AddBCC($emailcco, $namecco); // Copia Oculta
echo "Nome" . $name;
echo "E-mail" . $email . "<br />";
echo "Nome" . $namecc;
echo "E-mail Cc" . $emailcc . "<br />;
echo "Nome" . $namecco;
echo "E-mail Cco" . $emailcco . "<br />;
}
Como fazer para geram um laço que gere estes resultados de echo? Teria algo mais elegantemente lógico?
>
tem como postar a estrutura do arquivo?
$arr = explode(';', $frm_para);
de onde ele esta dando o explode?
O código beta é basicamente isso:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Título</title>
<link rel="stylesheet" type="text/css" href="estilo.css">
<script type="text/javascript" src="verifica.js"></script>
</head>
<body>
<?php
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "teste.dominio.com";
$mail->Port = 25;
$mail->SMTPAuth = true;
$mail->Username = 'teste@dominio.com';
$mail->Password = 'senha';
if (isset($_POST['submit'])) {
$frm_para = $_POST['frm_para'];
$frm_cc = $_POST['frm_cc'];
$frm_cco = $_POST['frm_cco'];
$frm_mensagem = $_POST['frm_mensagem'];
if (!empty($frm_para) || !empty($frm_cc) || !empty($frm_cco)) {
if (!empty($frm_mensagem)) {
$mail->From = "teste@dominio.com"; // email remetente
$mail->FromName = "Teste usuário"; // nome remetente
$arr = explode(';', $frm_para);
foreach( $arr as $v ){
$arr2 = explode(' ', $v);
$email = end($arr2);
unset( $arr2[ key($arr2) ] );
$name = implode( ' ', $arr2 );
$mail->AddAddress($email, $name); //mudar aqui
$mail->AddCC($emailcc, $namecc); // Copia
$mail->AddBCC($emailcco, $namecco); // Copia Oculta
echo "Nome" . $name;
echo "E-mail" . $email . "<br />";
echo "Nome" . $namecc;
echo "E-mail Cc" . $emailcc . "<br />;
echo "Nome" . $namecco;
echo "E-mail Cco" . $emailcco . "<br />;
}
// habilita tags HTML
$mail->IsHTML(true);
$mail->CharSet = 'UTF-8';
// Define a mensagem (Texto e Assunto)
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->Subject = "Título da mensagem"; // Assunto da mensagem
$mail->AddEmbeddedImage('img.jpg', 'logoimg', 'img.jpg'); // attach file logo.jpg, and later link to it using identfier logoimg
$mail->Body = "Mensagem: " . $frm_mensagem . "<br /><br />
----<br />
Att,<br />
<b>Mensagem: </b><br />
Gerência de Ambientes e Plataformas<br />
ld-operacaodesistemas@oi.net.br<br />
<img src=\"cid:logoimg\" /><br />";
$enviado = $mail->Send();
// Limpa os destinatários e os anexos
$mail->ClearAllRecipients();
$mail->ClearAttachments();
if ($enviado) {
echo "E-mail enviado com sucesso!";
}
else {
echo "Não foi possível enviar o e-mail.<br /><br />";
echo "<b>Informações do erro:</b> <br />" . $mail->ErrorInfo;
}
exit();
}
else {
echo "<center><font color=#FF0000>Por favor digite uma mensagem.</font><br /><br /></center>";
}
}
else {
echo "<center><font color=#FF0000>Um destes campos deve ser preenchido: Para, Cc e Cco.</font><br /><br /></center>";
}
}
?>
<form name="formulario_contato" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<fieldset>
<label for="frm_para">Para:</label>
<input type="text" size="40" name="frm_para" id="frm_para" value="<?php if (!empty($frm_para)) echo $frm_para; ?>" />
<label for="frm_cc">Cc:</label>
<input type="text" size="40" name="frm_cc" id="frm_cc" value="<?php if (!empty($frm_cc)) echo $frm_cc; ?>" />
<label for="frm_cco">Cco:</label>
<input type="text" size="40" name="frm_cco" id="frm_cco" value="<?php if (!empty($frm_cco)) echo $frm_cco; ?>" />
<label for="frm_mensagem">mensagem*:</label>
<textarea cols="42" rows="10" name="frm_mensagem" id="frm_mensagem"><?php if (!empty($frm_mensagem)) echo $frm_mensagem; ?></textarea><br />
</fieldset>
<input type="reset" value="limpar formulário" />
<input type="submit" name="submit" onmouseover="verificar_preenchimento();"value="Enviar" />
</form>
</body>
</html>Poderia por favor mostrar como ficaria o novo código?
ok, se os emails from tiverem sido separadas por ';' nao vejo por separar depois por ' ', se ja separou por ';' basra usar um for, ao invez de foreach...
>
ok, se os emails from tiverem sido separadas por ';' nao vejo por separar depois por ' ', se ja separou por ';' basra usar um for, ao invez de foreach...
Terei entradas do tipo: Fulano de tal teste@dominio.com.br; zezinho de tal zezinho@dominio.com; ze@teste.com e terei que retornar algo como:
Nome: Fulano de tal
E-mail: teste@dominio.com.br
Nome: zezinho de tal
E-mail: zezinho@dominio.com
Nome:
E-mail: ze@teste.com
entao sua logica esta errada, perceba q entre os proprios nomes tera espaço, dae sua logica nao funciona...seria mais facil juntar o nome e o email com traço, edar outro explode, ae sim da certo...
>
entao sua logica esta errada, perceba q entre os proprios nomes tera espaço, dae sua logica nao funciona...seria mais facil juntar o nome e o email com traço, edar outro explode, ae sim da certo...
Atualmente esta funcionando, mas só consigo utilizar esta lógica para um campo. Mas estou contornando isso de outra forma...
sim pq tudo o q você precisa esta colocando dentro de um foreach, se você separa o q precisa e depois juntar tudo, por exemplo...os metodo add do phpmlaier, você fazer 2 loops (para 2 capos) e depois add a mensagem e enviar, com certeza você conseguira fazer o q ker...
sim pq tudo o q você precisa esta colocando dentro de um foreach, se você separa o q precisa e depois juntar tudo, por exemplo...os metodo add do phpmlaier, você fazer 2 loops (para 2 capos) e depois add a mensagem e enviar, com certeza você conseguira fazer o q ker...
Muito obrigado pela ajuda. Irei fazer isso.
tem como postar a estrutura do arquivo?
$arr = explode(';', $frm_para);
de onde ele esta dando o explode?