Ir para conteúdo

POWERED BY:

Arquivado

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

bruna.w

[Resolvido] remetente de e-mail php

Recommended Posts

gente como posso resolver isso?

 

enviar email de proposta.

tenho um formulário na pagina de detalhes onde usuário interessados no produto possa entrar em contato com o vendedor via e-mail atravé do site.

 

 

<?

$nome = $_POST["nome"];

$destinatario = $_POST["destinatario"]; // E-MAIL DO ANUNCIANTE

 

$email = $_POST["email"];

$fone = $_POST["fone"];

$assunto = $_POST["assunto"];

$mensagem = $_POST["mensagem"];

 

global $email;

 

$data = date("d/m/y");

$ip = $_SERVER['REMOTE_ADDR'];

$navegador = $_SERVER['HTTP_USER_AGENT'];

$hora = date("H:i");

 

mail ("contatos@meusite.com.br", // GOSTARIA QUE O DESTINATARIO UM E-MAIL DIFERENTE EX:($destinatario)pegando valor desta variável "$assunto",

"Nome: $nome\nData: $data\nIp: $ip\nNavegador: $navegador\nHora: $hora\nE-mail: $email\nTelefone: $fone\n\nMensagem: $mensagem",

"From: $email");

 

echo "<p align=center>$nome, sua mensagem foi enviada com sucesso!</p>";

echo "<p align=center>o vendedor entrará em contato em breve.</p>";

?>

 

muito obrigada pela atenção de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu ver se entendi, tem um destinatário fixo ai, e você quer que pegue o destinatário da variável?

Se for...

mail ("$destinatario","$assunto","Nome: $nome\nData: $data\nIp: $ip\nNavegador: $navegador\nHora: $hora\nE-mail: $email\nTelefone: $fone\n\nMensagem: $mensagem",
"From: $email");

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi Paulo, sim, este destinatario fixo vai siar ficando axatamente como você colocou porem, já fiz dessa forma e dar erro. vou verificar o erro e postar ok?

 

muito obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok Carlos,vou seguir sua orientação.

é muito bom contar com ajuda de pessoa expetacular como você.

muito obrigada.

 

oi Carlos,

seguir sua orianteção mas só aciete email fixo no from:

dai dar este erro.

(sendmail_from" not set in php.ini or custom "From:")

 

tem como definir la no php.ini para aceitar email que vem do POST?

 

la no form é assim, email: "onde o interessado digita o email" email_dest: é um hidden field que pega o email do dono do cão.

ficando assim:

 

$nome = $_POST["nome"];

$subject = $_POST["assunto"];

$from = $_POST["email"];//dar erro no remetente só aceitando e-mail fixo

$to = $_POST["email_dest"];

$bcc = null; // Esconder endereços de e-mails.

 

obrigada mesmo pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para não complicar muito, vou postar um exemplo básico.

 

<form action="" method="post">
   <h2>Entre em contato!</h2>
   <label>Assunto:<input type="text" name="assunto"></label>
   <br/>
   <label>Destinatario:<input type="text" name="to"></label>
   <br/>
   <label>Mensagem:<br/><textarea cols="10" rows="5"  name="mensagem"></textarea></label>
   <br/>
   <input type="hidden" name="from" value="mail@meusite.com.br">
   <label><input type="submit" value="Enviar"></label>
</form>
<?php

if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' )
{
   $subject  = $_POST[ 'assunto' ];
   $from     = $_POST[ 'from' ];
   $to       = $_POST[ 'to' ];
   $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  = nl2br( $_POST[ '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 );

}

 

Lembrando de que não foi feito as devidas validações dos dados($_POST). :thumbsup:

 

Fiz os devidos teste e posso garantir que está funcionando corretamente :yes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

tudo bem, vou só troca os valores dos posts por ex:$from = $_POST[ 'from' ]; fica assim ($from = $_POST[ 'email' ];)// valor do meu from

$to = $_POST[ 'to' ]; fica assim $to = $_POST[ 'emai_dest' ]; // destinatário que também vem da mesma pagina do form.

 

ele va funcionar sem dúvidas.

muito obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, se ainda tiver dúvidas, não deixe de perguntar ;)

 

dar este erro na ultima linha,tentei fazer asim mail($from,$subject, $message, $headers ); mas não deu.

 

SMTP server response: 501 Syntax error in parameters or arguments

 

<?php 

if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) 
{
  $subject  = $_POST[ 'assunto' ]; 
   $from     = $_POST[ 'from' ];
   $to       = $_POST[ 'to' ]; 
   $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  = nl2br( $_POST[ '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 ); 

?>
}

muito obrigada mesmo

estou ti encomodando muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

As Chave "}" ficou fora do código PHP use este e veja se da certo:

 

<?php 

if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) 
{
$subject = $_POST[ 'assunto' ]; 
$from = $_POST[ 'from' ];
$to = $_POST[ 'to' ]; 
$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 = nl2br( $_POST[ '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 ); 
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

me desculpem pessoal mas não sei mais o que fazer não consigo ver onde está o erro vejam o código.

 

//FORMULÁRIO:

<form id="form1" name="form1" method="post" action="ENVIAR_PROPOSTA.php">
 table width="190" border="0" align="center">
   <tr>
     <th width="180" scope="col"><label> </label>
       <div align="left"><span class="style61">Nome:</span><br />
         <span id="sprytextfield1">
             <label>
               <input name="nome" type="text" id="nome" size="32" />
  <span class="textfieldRequiredMsg">campo obrigatório.</span>                                          </label>
   </span></div></th>
     </tr>
      <tr>
         <td><span class="style61">Fone:</span><br />
      <label><span id="sprytextfield2">
       <input name="fone" id="fone" value="" size="32" wdg:subtype="MaskedInput" wdg:mask="(99) 9999 9999" wdg:restricttomask="no" wdg:type="widget" />
        <span class="textfieldRequiredMsg">campo obrigatório.</span></span></label></td>
           </tr>
           <tr>
      <td><span class="style61">E-mail:</span><br />
        <label><span id="sprytextfield3">
         <input name="from" type="text" id="from" size="32" />
           <span class="textfieldRequiredMsg"> campo obrigatório.</span><span class="textfieldInvalidFormatMsg"> e-mail iválido.</span></span></label></td>
 </tr>
<tr>
  <td><span class="style61">Proposta:
     <label> </label>
        <label></label>
              <label></label>
                </span>
                  <label><span id="sprytextarea1">
                     <textarea name="mensagem" id="mensagem" cols="30" rows="5"></textarea>
                       <span class="textareaRequiredMsg">campo obrigatório.</span></span></label></td>
                                   </tr>
     <tr>
  <td><div align="center">
<input name="RACA" type="hidden" id="cor" value="<?php echo $row_R_DETALHES['raca_cao']; ?>" />
<input name="IDADE" type="hidden" id="ano" value="<?php echo $row_R_DETALHES['idade_cao']; ?>" />
                                         />
<input name="to" type="hidden" id="to" value="<?php echo $row_R_DETALHES['EMAIL_ANU']; ?>" />

<input type="submit" name="enviar" id="enviar" value="Enviar" />

</div></td>
                                   </tr>
  </table>
  </form>

 

//ENVIAR PROPOSTA:

<?php  

if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' )  
{ 
$subject = $_POST[ 'assunto' ];  
$from = $_POST[ 'from' ]; 
$to = $_POST[ 'to' ];  
$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 = nl2br( $_POST[ '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 );  //IMPACOU NESTA LINHA COM ESTE ERRO: SMTP server response: 501 Syntax error in parameters or arguments 
} 
?>

 

com este código a msg é enviada perfeitamente porem,só com e-mail fixo, deem uma olhada.

<?

      //dados do formulário
$ano = $_POST["idade"];
$dados      = "DADOS DA PROPOSTA";
$inf      = "Uma simples pergunta pode gerar um grande negócio";
$nome      = $_POST["NOME"];
$email   = $_POST["email"];
$fone  = $_POST["fone"];
$emaildest = $_POST["EMAIL_DEST"];
$assunto   = "SEU CÃO RECEBEU UMA PROPOSTA";
$mensagem  = $_POST["mensagem"];


              //global $email;

$data      = date("d/m/y");
$ip        = $_SERVER['REMOTE_ADDR'];
//$navegador = $_SERVER['HTTP_USER_AGENT'];
$hora      = date("H:i");

//enviando e-mail ao destinatario principal

mail ("$emaildest",
"$assunto",
"Data: $data\nIp: $ip\nHora: $hora\n \nDADOS DO CÃO\nANO: $ano\n$dados\n \nNome: $nome\nE-mail: $email\nTelefone: $fone\n\nPROPOSTA: \n $mensagem\n \n \n \n TIRE TODAS AS DÚVIDAS DO USUÁRIO: \n \n $inf",
"From: EMAIL@SITE.com.br"); //é para ser mas não deu "FROM:$email"

//enviando e-mail respostas

$site   = "www.osite.com.br";
$titulo = "CONTATOS DO SITE";
$msg    = "$nome, em breve voce terá retorno, WWW.OSITE.COM.BR agradece sua visita";

mail("$email",
"$titulo",
"$msg",
"From: contatos@OSITE.com.br");

                       //mensagem de confirmaçao ao enviar

echo "<p align=center>$nome, sua proposta enviada com sucesso!</p>";
echo "<p align=center> em breve voce terá retorno.</p>";
?>

 

//EM "From: EMAIL@SITE.com.br")é para ser assim "FROM:$email" mas não envia, PEGANDO O VALOR DA VARIÁVEL $MAIL E COLOCANDO COMO REMETENTE.

 

 

se vcs falarem que não tenho vocação,eu concordo.

me deem uma luz observando o ultimo código por favor.

 

muito obrigada pela paciência de vcs.

 

Bruna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui funcionou normal

 

 

<form id="form1" name="form1" method="post" action="ENVIAR_PROPOSTA.php">
<table width="190" border="0" align="center">
<tr>
<th width="180" scope="col"><label> </label>
<div align="left"><span class="style61">Nome:</span><br />
<span id="sprytextfield1">
<label>
<input name="nome" type="text" id="nome" size="32" />
<span class="textfieldRequiredMsg">campo obrigatório.</span> </label>
</span></div></th>
</tr>
<tr>
<td><span class="style61">Fone:</span><br />
<label><span id="sprytextfield2">
<input name="fone" id="fone" value="" size="32" wdg:subtype="MaskedInput" wdg:mask="(99) 9999 9999" wdg:restricttomask="no" wdg:type="widget" />
<span class="textfieldRequiredMsg">campo obrigatório.</span></span></label></td>
</tr>
<tr>
<td><span class="style61">E-mail:</span><br />
<label><span id="sprytextfield3">
<input name="from" type="text" id="from" size="32" />
<span class="textfieldRequiredMsg"> campo obrigatório.</span><span class="textfieldInvalidFormatMsg"> e-mail iválido.</span></span></label></td>
</tr>
<tr>
<td><span class="style61">Proposta:
<label> </label>
<label></label>
<label></label>
</span>
<label><span id="sprytextarea1">
<textarea name="mensagem" id="mensagem" cols="30" rows="5"></textarea>
<span class="textareaRequiredMsg">campo obrigatório.</span></span></label></td>
</tr>
<tr>
<td><div align="center">
<input name="RACA" type="hidden" id="cor" value="RACA_TESTE" />
<input name="IDADE" type="hidden" id="ano" value="IDADE_TESTE" />

<input name="to" type="hidden" id="to" value="teste@gmail.com" />

<input type="submit" name="enviar" id="enviar" value="Enviar" />

</div></td>
</tr>
</table>
</form>

//ENVIAR PROPOSTA:

<?php

if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' )
{
   $subject = $_POST[ 'assunto' ];
   $from = $_POST[ 'from' ];
   $to = $_POST[ 'to' ];
   $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 = nl2br( $_POST[ '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 );
}
?>

 

 

 

Teste este script(apenas esta parte) com valores estáticos nos inputs

 

Você deve verificar se os valores vindos do banco de dados estão corretos, verifique o código fonte gerado(HTML -> input -> value)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tudo bem, vou pegar do jeito que está e só alterar os valores dos imputs relacionando com os POSTs.

 

os valores estão vindo do BD perfeitamente.

 

vou fazer estas mudanças p/ ver ok?

 

obrigada bjs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi Carlos, fiz exatamente como você me orientou copiei o código acima e só alterei o valor da variável "$from" mas dar o mesmo erro.

Warning: mail() [function.mail]: SMTP server response: 501 Syntax error in parameters or arguments nesta linha

mail( null,$subject, $message, $headers );

não dar para trocar o (null) por($email)?

pelo o que entendir o erro e no remetente.será que tenho que fazer alguma configuração nos arquivos da pasta include onde refere a e-mail?

 

muito obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não dar para trocar o (null) por($email)?

 

Dá sim, remova

$headers .= sprintf( 'To: %s%s', $to, PHP_EOL );

 

E coloque

mail( $to, $subject, $message, $headers );

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá pessoal, em especial o Carlos,tentei de todas as formas mas não deu; tive fazendo algumas pasquisas e vi que alguns servidores não aceitam este tipo de envio (remetente diferente do email do site)e com certeza este é o meu caso,aprendir bastante com as ajudas de vocês, fico agradecida por terem me passado este conhecimento.

 

não há outra alternativa a não ser fechar este tópico com "resolvido", pois neste caso já está OK se o que eu falei não estiver correto fico no aguardo.

 

bjs a todos.

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.