Ir para conteúdo

POWERED BY:

Arquivado

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

Googli

T_REQUIRE_ONCE (PHPMailer)

Recommended Posts

É 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

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

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

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

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

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

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

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

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

×

Informação importante

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