Googli 0 Denunciar post Postado Outubro 9, 2007 É o seguinte pessoas, so iniciante na linguagem PHP. Estou fazendo um site com um formulário para envio de email. Para isso estou usando o PHPMailer. Segue codigo abaixo do enviaemail.php (Que é requisitado no botão enviar do contato.htm) <? PHP// chamada da classe phpmailerrequire_once ('class.phpmailer.php');// resgatando os dados passados pelo form$nome = $_POST['txt_nome'];$empresa = $_POST['txt_empresa'];$telefone = $_POST['txt_telefone'];$mensagem = $_POST['txt_mensagem'];// faço a chamada da classe$Email = new PHPMailer();// na classe, há a opção de idioma, setei como br$Email->SetLanguage("br");// esta chamada diz que o envio será feito através da função mail do php. Você mudar para sendmail, qmail, etc // se quiser utilizar o programa de email do seu unix/linux para enviar o email$Email->SmtpSend();// ativa o envio de e-mails em HTML, se false, desativa.$Email->IsHTML(true); // email do remetente da mensagem$Email->FromName = $nome;// telefone$Email->FromName = $empresa;// Endereço de destino do email$Email->AddAddress("automa@automa-rs.com.br");// informando no email, o assunto da mensagem$Email->Subject = $telefone;$Email->Body = $mensagem;// Define o texto da mensagem (aceita HTML)$Email->Body .= "<B>E-mail enviado por usuário<BR></b>";$Email->Body .= "Mensagem do usuário: $msg<BR><BR>";// verifica se está tudo ok com oa parametros acima, se nao, avisa do erro. Se sim, envia.if(!$Email->Send()) {echo "A mensagem não foi enviada. <p>";echo "Erro: " . $mail->ErrorInfo;}?> Porem, quando esse .php eh chamado o Apache-PHP me retorna o seguinte erro: Parse error: syntax error, unexpected T_REQUIRE_ONCE in D:\Apache\htdocs\enviaemail.php on line 3 Programas utilizados: Apache 2.2.6 PHP 5 Dreamweaver MX 6 Windows XP SP2 Quem me ajudar ficarei muito agradecido http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 10, 2007 Googli, seja bem-vindo ao fórum http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif (é parente do Google? http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif) O erro apresentado é de sintaxe. Pelo que vi, há um espaço após a tag de abertura da linguagem <? PHP. Troque para <?php e veja se resolve ;) Compartilhar este post Link para o post Compartilhar em outros sites
Googli 0 Denunciar post Postado Outubro 10, 2007 Continuo com erro, mas agora no PHPMailer mesmo, se alguem quiser upo os arquivos pra alguem me ajuda :mellow: Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 10, 2007 Posta o erro retornado ;) Compartilhar este post Link para o post Compartilhar em outros sites
Googli 0 Denunciar post Postado Outubro 10, 2007 Posta o erro retornado ;)Ai é que ta, não retorna erro, página branca =/ Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 11, 2007 Posta o código com as alterações então, farei um teste aqui ;) Compartilhar este post Link para o post Compartilhar em outros sites
Googli 0 Denunciar post Postado Outubro 11, 2007 Posta o código com as alterações então, farei um teste aqui ;)Upei os arquivos para você dar uma olhada http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://rapidshare.com/files/61841708/arquivos.rar.html Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 11, 2007 Faltou o arquivo enviaemail.php. Posta o conteúdo dele e as alterações. Compartilhar este post Link para o post Compartilhar em outros sites
Googli 0 Denunciar post Postado Outubro 11, 2007 Ta ai: <?PHP// chamada da classe phpmailerrequire_once ('class.phpmailer.php');// resgatando os dados passados pelo form$nome = $_POST['txt_nome'];$empresa = $_POST['txt_empresa'];$telefone = $_POST['txt_telefone'];$mensagem = $_POST['txt_mensagem'];// faço a chamada da classe$Email = new PHPMailer();// na classe, há a opção de idioma, setei como br$Email->SetLanguage("br");// esta chamada diz que o envio será feito através da função mail do php. Você mudar para sendmail, qmail, etc // se quiser utilizar o programa de email do seu unix/linux para enviar o email$Email->SmtpSend();// ativa o envio de e-mails em HTML, se false, desativa.$Email->IsHTML(true); // email do remetente da mensagem$Email->FromName = $nome;// telefone$Email->FromName = $empresa;// Endereço de destino do email$Email->AddAddress("automa@automa-rs.com.br");// informando no email, o assunto da mensagem$Email->Subject = $telefone;$Email->Body = $mensagem;// Define o texto da mensagem (aceita HTML)$Email->Body .= "<B>E-mail enviado por usuário<BR></b>";$Email->Body .= "Mensagem do usuário: $msg<BR><BR>";// verifica se está tudo ok com oa parametros acima, se nao, avisa do erro. Se sim, envia.if(!$Email->Send()) {echo "A mensagem não foi enviada. <p>";echo "Erro: " . $mail->ErrorInfo;}?> Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 11, 2007 Haviam três problemas: 1. o método SmtpSend() não deve ser chamado daquela forma. O que você precisa usar ali é o IsSMTP(), pra indicar que o envio é por SMTP. 2. o arquivo da classe (class.smtp.php) não precisa ser alterado. Acabou colocando ali um caminho inexistente. Altere novamente o "smtp.via-rs.com.br" por "class.smtp.php". 3. a variável da mensagem estava chamando errado. Troquei de $msg para $mensagem. Abaixo segue o conteúdo de enviaemail.php, com estas alterações. Não esquece de alterar a classe (item 2, acima) ;) PHP <?php// chamada da classe phpmailer require_once ('class.phpmailer.php'); // resgatando os dados passados pelo form $nome = $_POST['txt_nome']; $empresa = $_POST['txt_empresa']; $telefone = $_POST['txt_telefone']; $mensagem = $_POST['txt_mensagem']; // faço a chamada da classe $Email = new PHPMailer(); // na classe, há a opção de idioma, setei como br $Email->SetLanguage("br"); // esta chamada diz que o envio será feito através da função mail do php. Você mudar para sendmail, qmail, etc // se quiser utilizar o programa de email do seu unix/linux para enviar o email $Email->IsSMTP(); // ativa o envio de e-mails em HTML, se false, desativa. $Email->IsHTML(true); // email do remetente da mensagem $Email->FromName = $nome; // telefone $Email->FromName = $empresa; // Endereço de destino do email $Email->AddAddress("automa@automa-rs.com.br"); // informando no email, o assunto da mensagem $Email->Subject = $telefone; $Email->Body = $mensagem; // Define o texto da mensagem (aceita HTML) $Email->Body .= "<B>E-mail enviado por usuário<BR></b>"; $Email->Body .= "Mensagem do usuário: $mensagem<BR><BR>"; // verifica se está tudo ok com oa parametros acima, se nao, avisa do erro. Se sim, envia. if(!$Email->Send()) { echo "A mensagem não foi enviada. <p>"; echo "Erro: " . $mail->ErrorInfo; } else { echo "Mensagem enviada."; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Googli 0 Denunciar post Postado Outubro 11, 2007 Haviam três problemas:1. o método SmtpSend() não deve ser chamado daquela forma. O que você precisa usar ali é o IsSMTP(), pra indicar que o envio é por SMTP.2. o arquivo da classe (class.smtp.php) não precisa ser alterado. Acabou colocando ali um caminho inexistente. Altere novamente o "smtp.via-rs.com.br" por "class.smtp.php".3. a variável da mensagem estava chamando errado. Troquei de $msg para $mensagem.Abaixo segue o conteúdo de enviaemail.php, com estas alterações. Não esquece de alterar a classe (item 2, acima) ;) PHP xxx Valeu mesmo cara, porem o email nao ta indo, onde ponho o servidor smtp? Por que o email ta indo certinho, tudo funcionando, soh ta faltando configura o smtp... Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 11, 2007 Por padrão, a classe entende que o envio é feito por "localhost". Pra torcar, acrescente a linha abaixo, depois de $Email = new PHPMailer(): PHP $Email->Host = "smtp.servidor.com.br"; Compartilhar este post Link para o post Compartilhar em outros sites
Googli 0 Denunciar post Postado Outubro 11, 2007 Por padrão, a classe entende que o envio é feito por "localhost". Pra torcar, acrescente a linha abaixo, depois de $Email = new PHPMailer(): PHP $Email->Host = "smtp.servidor.com.br"; botei e retornou esse erro: A mensagem n�o foi enviada. Erro: Erro de SMTP: Os endere�os de destinat�rio a seguir falharam: automa@automa-rs.com.br Botei o SMTP certinho. o email ta certo. O que será que é dessa vez? To quase jogando a toalha :( Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 11, 2007 hehe, calma aí. Olhando de novo, vi que falta um e-mail de origem. O padrão é "root@localhost" e este dificilmente será entregue a um servidor. Altere: PHP $Email->FromName = $empresa; Para: PHP $Email->From = "automa@automa-rs.com.br"; Note que a propriedade (FromName) foi alterada também (From). Compartilhar este post Link para o post Compartilhar em outros sites
ze_violeiro 0 Denunciar post Postado Outubro 11, 2007 PHP <?php ?> Compartilhar este post Link para o post Compartilhar em outros sites
Googli 0 Denunciar post Postado Outubro 11, 2007 hehe, calma aí. Olhando de novo, vi que falta um e-mail de origem. O padrão é "root@localhost" e este dificilmente será entregue a um servidor. Altere: PHP $Email->FromName = $empresa; Para: PHP $Email->From = "automa@automa-rs.com.br"; Note que a propriedade (FromName) foi alterada também (From). Alterei e voltou a ficar tudo branco :( Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Outubro 15, 2007 Posta o código com a última alteração feita. Compartilhar este post Link para o post Compartilhar em outros sites