kenweb 0 Denunciar post Postado Janeiro 5, 2012 espera kra ta confuso.... onde ira aparecer o html? o erro function.mail n deixa o codigo trabalhar... Edit: Espera acho q achei onde pode estar o erro. Veja essa linha: window.location='enviado.html' Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Janeiro 14, 2012 Indo direto ao assunto... No Linux, você pode definir o From das seguintes formas: $headers .= "From: eu@seudominio.com\n"; $headers .= "From: Meu Nome <eu@seudominio.com>\n"; No Windows: $headers .= "From: eu@seudominio.com\r\n"; Tente desta forma: <?php $subject = 'Assunto'; $from = 'fulano@gmail.com'; $to = 'ciclano@hotmail.com'; $bcc = null; // Esconder endereços de e-mails. $cc = null; // Qualquer destinatário pode ver os endereços de e-mail especificados nos campos To e Cc. $message = 'Corpo da mensagem'; $headers = sprintf( 'Date: %s%s', date( "D, d M Y H:i:s O" ), PHP_EOL ); $headers .= sprintf( 'Return-Path: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'To: %s%s', $to, PHP_EOL ); $headers .= sprintf( 'Cc: %s%s', $cc, PHP_EOL ); $headers .= sprintf( 'Bcc: %s%s', $bcc, PHP_EOL ); $headers .= sprintf( 'From: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'Reply-To: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'Message-ID: <%s@%s>%s', md5( uniqid( rand( ), true ) ), $_SERVER[ 'HTTP_HOST' ], PHP_EOL ); $headers .= sprintf( 'X-Priority: %d%s', 3, PHP_EOL ); $headers .= sprintf( 'X-Mailer: PHP/%s%s', phpversion( ), PHP_EOL ); $headers .= sprintf( 'Disposition-Notification-To: %s%s', $from, PHP_EOL ); $headers .= sprintf( 'MIME-Version: 1.0%s', PHP_EOL ); $headers .= sprintf( 'Content-Transfer-Encoding: 8bit%s', PHP_EOL ); $headers .= sprintf( 'Content-Type: text/html; charset="iso-8859-1"%s', PHP_EOL ); mail( null, $subject, $message, $headers ); ?> Verifique se todas as variáveis que você utilizar estão com os valores corretos. Compartilhar este post Link para o post Compartilhar em outros sites
kenweb 0 Denunciar post Postado Janeiro 14, 2012 kra n entendi o esquema eh pegar as informaçoes do formulario mandar para o email, e responder no outro email. Isso q você me passou seria oq? Compartilhar este post Link para o post Compartilhar em outros sites
brcontainer 16 Denunciar post Postado Janeiro 22, 2012 espera kra ta confuso.... onde ira aparecer o html? o erro function.mail n deixa o codigo trabalhar... Edit: Espera acho q achei onde pode estar o erro. Veja essa linha: window.location='enviado.html' Olha amigo não me leva a mal não. Mas foi exatamente o que falei. Desculpe-me a sinceridade, mas ficou claro que você leu superficialmente meus "posts" anteriores, desde que eu comecei a falar sobre o DEBUG. Leia com atenção por favor agora. veja como eu havia falado anteriormente: http://forum.imasters.com.br/topic/453016-functionmail/page__view__findpost__p__1792957 http://forum.imasters.com.br/topic/453016-functionmail/page__view__findpost__p__1793945 Veja essa linha: echo "<script>window.location='$exibir_apos_enviar'</script>"; Você deve comenta-la, assim: //echo "<script>window.location='$exibir_apos_enviar'</script>"; ou comenta-la assim: /*echo "<script>window.location='$exibir_apos_enviar'</script>";*/ "Comentar" quer dizer que aquela linha não irá funcionar, não será execultada. O código ficou assim: <?php $date = date("d/m/Y h:i"); $nome = $_POST['tx_nome']; $email = $_POST['tx_email']; $telefone = $_POST['tx_telefone']; $celular = $_POST['cidade']; $textodamensagem = $_POST['tx_mensagem']; $nome_do_site="http://www.site.com.br/"; $email_para_onde_vai_a_mensagem = "email@email"; $nome_de_quem_recebe_a_mensagem = "nome"; $exibir_apos_enviar='pagina.html'; $cabecalho_da_mensagem_original="From: $name <$email>\n"; $assunto_da_mensagem_original="Contato no Site"; $configuracao_da_mensagem_original=" ENVIADO POR:\n Nome: $nome\n Email: $email\n Telefone: $telefone\n Celular: $celular\n Mensagem: $textodamensagem\n ENVIADO EM: $date "; $assunto_da_mensagem_de_resposta = "Confirmação"; $cabecalho_da_mensagem_de_resposta = "From: $nome_do_site < $email_para_onde_vai_a_mensagem>\n"; $configuracao_da_mensagem_de_resposta="Obrigado por entrar em contato!\n Estaremos respondendo em breve...\n Atenciosamente,\n$ Nome\n\n Enviado em: $date"; $assunto_digitado_pelo_usuario="s"; $headers = "$cabecalho_da_mensagem_original"; if($assunto_digitado_pelo_usuario=="n"){ $assunto = "$assunto_da_mensagem_original"; } $seuemail = "$email_para_onde_vai_a_mensagem"; $mensagem = "$configuracao_da_mensagem_original"; mail($seuemail,$assunto,$mensagem,$headers); $headers = "$cabecalho_da_mensagem_de_resposta"; if($assunto_digitado_pelo_usuario=="n"){ $assunto = "$assunto_da_mensagem_de_resposta"; }else{ $assunto = "Re: $assunto"; } $mensagem = "$configuracao_da_mensagem_de_resposta"; mail($email,$assunto,$mensagem,$headers); /*echo "<script>window.location='$exibir_apos_enviar'</script>";*/ ?> Agora vamos implementar o DEBUG: A cada função MAIL() você deve adicionar os ECHO'S que exibem os HEADERS. Antes de cada MAIL() adicione o DEBUG (que são os "ECHO;" que exibem detalhes da função): Esse código abaixo é um DEBUG, por exemplo echo '<h1>Primeiro mail(): ',$seuemail,'</h1>', '<p>assunto: ',$assunto,'</p>', '<p>mensagem: ',$mensagem,'</p>', '<p>headers:</p><pre>',$headers,'</pre>'; mail($seuemail,$assunto,$mensagem,$headers); Entendeu o echo exibe as variáveis que são enviadas para a função MAIL(), exibindo detalhes para que você indentifique o erro. Vamos a prática: Você tem duas funções mail() sendo execultadas. Primeira função mail(): if($assunto_digitado_pelo_usuario=="n"){ $assunto = "$assunto_da_mensagem_original"; } $seuemail = "$email_para_onde_vai_a_mensagem"; $mensagem = "$configuracao_da_mensagem_original"; mail($seuemail,$assunto,$mensagem,$headers); Vamos aplicar o debug nela, vai ficar assim: if($assunto_digitado_pelo_usuario=="n"){ $assunto = "$assunto_da_mensagem_original"; } $seuemail = "$email_para_onde_vai_a_mensagem"; $mensagem = "$configuracao_da_mensagem_original"; echo '<h1>Primeiro mail(): ',$seuemail,'</h1>', '<p>assunto: ',$assunto,'</p>', '<p>mensagem: ',$mensagem,'</p>', '<p>headers:</p><pre>',$headers,'</pre>'; mail($seuemail,$assunto,$mensagem,$headers); Veja que antes de mail() eu adicionei o ECHO. Segunda função mail(): $mensagem = "$configuracao_da_mensagem_de_resposta"; mail($email,$assunto,$mensagem,$headers); echo "<script>window.location='$exibir_apos_enviar'</script>"; Aqui devemos comentas o window.location como eu falei anteriormente e aplicar o DEBUG. Ficará assim: $mensagem = "$configuracao_da_mensagem_de_resposta"; echo '<h1>Segunda mail(): ',$email,'</h1>', '<p>assunto: ',$assunto,'</p>', '<p>mensagem: ',$mensagem,'</p>', '<p>headers:</p><pre>',$headers,'</pre>'; mail($email,$assunto,$mensagem,$headers); /*echo "<script>window.location='$exibir_apos_enviar'</script>";*/ veja novamente que antes da função mail() ficou o "echo"(que é o debug) e o window.location não vai ser execultado por que ele está comentado. Como deve ficar o código completo: <?php $date = date("d/m/Y h:i"); $nome = $_POST['tx_nome']; $email = $_POST['tx_email']; $telefone = $_POST['tx_telefone']; $celular = $_POST['cidade']; $textodamensagem = $_POST['tx_mensagem']; $nome_do_site="http://www.site.com.br/"; $email_para_onde_vai_a_mensagem = "email@email"; $nome_de_quem_recebe_a_mensagem = "nome"; $exibir_apos_enviar='pagina.html'; $cabecalho_da_mensagem_original="From: $name <$email>\n"; $assunto_da_mensagem_original="Contato no Site"; $configuracao_da_mensagem_original=" ENVIADO POR:\n Nome: $nome\n Email: $email\n Telefone: $telefone\n Celular: $celular\n Mensagem: $textodamensagem\n ENVIADO EM: $date "; $assunto_da_mensagem_de_resposta = "Confirmação"; $cabecalho_da_mensagem_de_resposta = "From: $nome_do_site < $email_para_onde_vai_a_mensagem>\n"; $configuracao_da_mensagem_de_resposta="Obrigado por entrar em contato!\n Estaremos respondendo em breve...\n Atenciosamente,\n$ Nome\n\n Enviado em: $date"; $assunto_digitado_pelo_usuario="s"; $headers = "$cabecalho_da_mensagem_original"; if($assunto_digitado_pelo_usuario=="n"){ $assunto = "$assunto_da_mensagem_original"; } $seuemail = "$email_para_onde_vai_a_mensagem"; $mensagem = "$configuracao_da_mensagem_original"; echo '<h1>Primeiro mail(): ',$seuemail,'</h1>', '<p>assunto: ',$assunto,'</p>', '<p>mensagem: ',$mensagem,'</p>', '<p>headers:</p><pre>',$headers,'</pre>'; mail($seuemail,$assunto,$mensagem,$headers); $headers = "$cabecalho_da_mensagem_de_resposta"; if($assunto_digitado_pelo_usuario=="n"){ $assunto = "$assunto_da_mensagem_de_resposta"; }else{ $assunto = "Re: $assunto"; } $mensagem = "$configuracao_da_mensagem_de_resposta"; echo '<h1>Segunda mail(): ',$email,'</h1>', '<p>assunto: ',$assunto,'</p>', '<p>mensagem: ',$mensagem,'</p>', '<p>headers:</p><pre>',$headers,'</pre>'; mail($email,$assunto,$mensagem,$headers); /*echo "<script>window.location='$exibir_apos_enviar'</script>";*/ ?> Tenho certeza que chegaremos a fonte do problema. Um ótimo domingo. Compartilhar este post Link para o post Compartilhar em outros sites
kenweb 0 Denunciar post Postado Janeiro 22, 2012 bem cara apareceu isso: Primeiro mail(): grupobff@ig.com.br assunto: mensagem: ENVIADO POR: Nome: kenneth Email: ken.web@hotmail.com Telefone: 55555555 Celular: Mensagem: daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ENVIADO EM: 22/01/2012 04:10 headers: From: Segunda mail(): ken.web@hotmail.com assunto: Re: mensagem: Obrigado por entrar em contato! Estaremos respondendo em breve... Atenciosamente, $ Nome Enviado em: 22/01/2012 04:10 headers: From: http://www.grupobff.com.br/ < grupobff@ig.com.br> Compartilhar este post Link para o post Compartilhar em outros sites
brcontainer 16 Denunciar post Postado Janeiro 23, 2012 Aqui, tem um espaço antes do "g" e depois do "<", tambem pode ser as barras "//" From: http://www.grupobff.com.br/ < grupobff@ig.com.br> tente assim: From: www.grupobff.com.br <grupobff@ig.com.br> O erro ocorre na "primeira" função mail ou na "segunda"? [editado] Opa agora que eu vi, aqui o FROM está indo vazio: mensagem: ENVIADO POR: Nome: kenneth Email: ken.web@hotmail.com Telefone: 55555555 Celular: Mensagem: daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ENVIADO EM: 22/01/2012 04:10 headers: From: Corrija isso, estou preparando uma função de email pra você e já te mando. Compartilhar este post Link para o post Compartilhar em outros sites
kenweb 0 Denunciar post Postado Janeiro 24, 2012 Acontece na primeira, depois mando o resultado do teste. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Augusto 3 Denunciar post Postado Junho 26, 2012 Desculpa reviver um tópico antigo assim, porém queriaprimeiramente agradecer o Carlos Coelho por essa solução que já substitui o PHPMailer em minhas aplicações e nunca foi relatado problemas. Porém tenho uma dúvida, usar os headers dessa forma éseguro? Ouvi falar muito de Mail Header Injection e queria saber se dessa formaposso me sentir mais tranquilo? Outra dúvida é se, com o tempo e um volume altode mensagens enviadas dessa forma, os servidores como Google e Hotmail podem meclassificar como SPAM? Obrigado pela solução. Compartilhar este post Link para o post Compartilhar em outros sites