Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Preciso para um trabalho da faculdade urgentemente já fiz com phpmailer, mas não deu certo.
Baixe o phpmailer pus dentro da pasta www do localhost fui no php.ini tirei o ; e para ativar a função php open ssl, fui no outlook e pus e-mail do gmail configurado lá também, fiz várias vezes. Esse último código que fiz não aparece erro mas fica em branco não manda e-mail nenhum. Quero manda do localhost um e-mail para destino do gmail segue o código.
<form id="form1" name="form1" method="post" action="enviar_email.php">
<div align="center">
<h3>Formulário de Contato
</h3>
<p align="center">Nome:
<label for="nome"></label>
<input type="text" name="nome" id="nome" />
</p>
<p align="center">E-mail:
<label for="email"></label>
<input type="text" name="email" id="email" />
</p>
<p align="center">Mensagem:</p>
<p align="center">
<label for="mensagem"></label>
<textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea>
</p>
<p align="center">
<input type="submit" name="Enviar" id="Enviar" value="Enviar" />
PHP
<?php
include 'class.phpmailer.php';
//recebe as variaveis
$nome = POST_('nome');
$email = POST_('email');
$mensagem = POST_('mensagem');
//arquivos inclusos na pasta phpmailer
//inicando a classe phpmailer
$mail= new PHPMailer();
$mail->IsSMTP();
$mail->Host ="smtp.gmail.com";
$port= 587;
$mail->SMTPAuth = true;
$mail->Username = 'meuemail@gmail.com';
$mail->Password= 'minhasenha';
$mail->SMTPSecure='tls';
//remetente
$mail->From = "meuemail@gmail.com";
$mail->FromName = "Admin";
//destinatário
$mail->AddAddress($email, $nome);
$mail->AddCC('meuemail@gmail.com');
//dados da mensagem que conterá dados em html
$mail->IsHTML(true);
//Texto e assunto e-mail
$mail->Subject = "Mensagem do site";
$mail->Body = $mensagem;
//Envia e-mail
$enviado = $mail->Send();
//mensagem de resultado
if($enviado){
echo "E-mail enviado com sucesso!";echo "Não foi possível enviar o e-mail!";
}
?>Ok.
>
Postgresql é um banco de dados e não um servidor de e-mails..
O recomendável é utilizar o phpmailer, utiliza mandar e-mails autenticado, só lembrando que a porta de SMTP não é mais a 25,
http://phpmailer.worxware.com/?pg=examplebgmail
Eu sei que não é um servidor de e-mails, mas nos foi cobrado isso em um trabalho. Ai tava dando uma dor de cabeça para fazer.
Então o que vc tem que fazer, e onde vc está com problema?
Que está muito vago
>
Então o que você tem que fazer, e onde você está com problema?
Que está muito vago
Quero enviar do meu código via localhost um e-mail,por exemplo, e receber lá no gmail.
O indicado pelo próprio @wolfphw é o que deve ser feito!
Vc já tentou utilizar esse código?
<?php
require_once('../class.phpmailer.php');
//include("class.smtp.php");
// optional, gets called from within class.phpmailer.php if not already loaded
$mail = new PHPMailer();
$body = file_get_contents('contents.html');
$body = eregi_replace("[\]",'',$body);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "mail.yourdomain.com"; // SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "tls"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 587; // set the SMTP port for the GMAIL server
$mail->Username = "yourusername@gmail.com"; // GMAIL username
$mail->Password = "yourpassword"; // GMAIL password
$mail->SetFrom('name@yourdomain.com', 'First Last');
$mail->AddReplyTo("name@yourdomain.com","First Last");
$mail->Subject = "PHPMailer Test Subject via smtp (Gmail), basic";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$address = "whoto@otherdomain.com";
$mail->AddAddress($address, "John Doe");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
?>
Que não tem como dar errado, apenas colocar as informações corretas, elas seriam, o seu email do gmail com a senha, ele funciona com phpmailer 5+
já fiz com phpmailer, mas não deu certo.
O que significa "não deu certo"?
Mostre o que fez e qual foi o resultado. Deu erro? Qual?
Veja como usar o PHPMailer com Gmail:
http://rberaldo.com.br/enviando-e-mails-com-a-classe-phpmailer/
Beraldo, cara eu olhando os outros tópicos desse Mateus, pra mim está parecendo que ele quer códigos prontos.
Sempre a mesma desculpa que apagou os códigos, não posta nada, nenhum erro, deve ser aqueles folgados esperando coisa pronta.
>
Beraldo, cara eu olhando os outros tópicos desse Mateus, pra mim está parecendo que ele quer códigos prontos.
Sempre a mesma desculpa que apagou os códigos, não posta nada, nenhum erro, deve ser aqueles folgados esperando coisa pronta.
Olha cara não quero nada pronto não, e postei códigos sim não estou aqui para copiar nada e sim pedir auxilio.
>
Beraldo, cara eu olhando os outros tópicos desse Mateus, pra mim está parecendo que ele quer códigos prontos.
Sempre a mesma desculpa que apagou os códigos, não posta nada, nenhum erro, deve ser aqueles folgados esperando coisa pronta.
>
Beraldo, cara eu olhando os outros tópicos desse Mateus, pra mim está parecendo que ele quer códigos prontos.
Sempre a mesma desculpa que apagou os códigos, não posta nada, nenhum erro, deve ser aqueles folgados esperando coisa pronta.
Não fala o que não sabe por favor tinha feito assim:
<!DOCTYPE html> <html xmlns="[http://www.w3.org/1999/xhtml](http://www.w3.org/1999/xhtml)"> <head> <title>--Formulário Contato--</title> <meta charset="utf-8" />
<script src="JavaScript1.js"></script>
</head>
<body>
<form name="meu_form">
<h3 align="center">Entre em contato</h3>
<p align="center"><span class="nome">
<label for="nome">Nome</label>: </span>
<input type="text" id="nomeid" required name="nome" /></p>
<p align="center"><span class="fone">
<label for="fone2">Fone</label>
</span>:
<input type="text" id="foneid" placeholder="(xx)xx-xx-xx-xx" name="fone" /></p>
<p align="center">
<label for="email2">Email</label>:
<input type="email" id="emailid" placeholder="mateus@gmail.com" name="email" /></p>
<p align="center">Mensagem:
<textarea placeholder="Deixe sua opnião"></textarea> </p> <p align="center" class="submit"> <input type="submit" onclick="Enviar();" value="Enviar" /> </p> </form>
</body>
</html>
function Enviar()
{
var nome = document.getElementById("nomeid");
if (nome.value != "") { alert('Obrigado sr(a) ' + nome.value + ' os seus dados foram encaminhados com sucesso'); } }
E tinha feito outro parecido com esse vou tentar novamente e não é desculpa volto a dizer não tem o porque de mentir.
:closedeyes: É incrivel como as pessoas julgam sem saber ando preocupado aqui venho aqui pedir ajuda e não para ser julgado e realmente uns tinha apagado. Mas postei uns códigos sim.
Tem esse aqui também que tinha feito antes http://forum.imasters.com.br/topic/537283-formulario-contato-como-testar-ele-no-localhost-do-postgres-sql/
Pronto ta ae.
Seu formulário não tem o atributo "action", ou seja, não é enviado a lugar algum. Sua função Javascript só exibe um alert, sem enviar nada por email.
Pesquise sobre "formulário de contato php". Você vai encontrar diversos tutoriais. Comece por aí. Primeiro faça funcionar o envio dos dados para o script PHP via POST. Depois implemente o envio por email.
Links úteis:
http://php.net/manual/pt_BR/tutorial.forms.php
http://www.uolhost.com.br/faq/hospedagem/como-enviar-mensagens-com-php-por-autenticacao-smtp.html
http://forum.imasters.com.br/topic/192408-sistema-de-cadastro-em-phpmysql/
A pasta do phpmailer fica junto com código lá. Ai chama no php?
A pasta do phpmailer fica junto com código lá. Ai chama no php?
Sim, logo após pegar os dados do formulário
Não está dando certo fiz mais simples assim.
<form name="contato" action="envia.php" method="post" >
Nome:<br/>
<input name="fale[nome]" type="text" value="" />
E-mail:<br/>
<input name="fale[email]" type="text" value="" />
Assunto:<br/>
<input name="fale[assunto]" type="text" value="" />
Mensagem: <br/>
<textarea name="fale[mensagem]"></textarea>
<input name="enviar" type="submit" value="Enviar" />
</form>
<?php
include(".../class.phpmailer.php");
$dados = $_REQUEST['fale'];
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->IsSMTP();
$mail->From = $dados['email'];
$mail->FromName = $dados['nome'];
$mail->AddAddress("mateus@gmail.com","Mateus");
$mail->Subject = "Fale conosco – ".$dados['assunto'];
$mail->Body = "<b>Nome:</b> ".$dados['nome']." <br /><br /><b>E-mail:</b> ".$dados['email']." <br /><br /><b>Mensagem:</b> ".$dados['mensagem'];echo "Erro ao enviar e-mail, tente novamente mais tarde.";
?>Não está dando certo
O que isso quer dizer?
Se você não explicar o que acontece, não temos como ajudar
Habilite todas as exibições de erro, como mostrado neste tópico e execute o script de novo.
Ao postar códigos, use a tag CODE (botão ao lado do botão pra inserir imagem)
É possível enviar emails através dos SGDBs, mas não recomendável, devido a travamentos etc.
Mas se quer enviar através do DB, de uma olhada aqui e saiba mais sobre pgMail
>
O que isso quer dizer?
Se você não explicar o que acontece, não temos como ajudar
Habilite todas as exibições de erro, como mostrado neste tópico e execute o script de novo.
Ao postar códigos, use a tag CODE (botão ao lado do botão pra inserir imagem)
Ok vou explicar.
>
É possível enviar emails através dos SGDBs, mas não recomendável, devido a travamentos etc.
Mas se quer enviar através do DB, de uma olhada aqui e saiba mais sobre pgMail
Editei ali a descrição da pergunta veja como está.
Pronto editei lá a descrição o que será que estão acontecendo fiz todos passos que citei acima. Podem me ajudar.
Habilite todas as exibições de erro, como mostrado neste tópico
Se fizer isso, verá as mensagens de erro. Seu script tem erro já no começo, aqui:
$nome = POST_('nome');
O certo é:
$nome = $_POST['nome'];
Mais informações:
http://php.net/manual/pt_BR/language.types.array.php
http://php.net/manual/pt_BR/language.variables.php
>
Habilite todas as exibições de erro, como mostrado neste tópico
Se fizer isso, verá as mensagens de erro. Seu script tem erro já no começo, aqui:
$nome = POST_('nome');
O certo é:
$nome = $_POST['nome'];
Mais informações:
http://php.net/manual/pt_BR/language.types.array.php
http://php.net/manual/pt_BR/language.variables.php
http://php.net/manual/pt_BR/reserved.variables.post.php
http://php.net/manual/pt_BR/tutorial.forms.php
Ok vou fazer isso.
>
Habilite todas as exibições de erro, como mostrado neste tópico
Se fizer isso, verá as mensagens de erro. Seu script tem erro já no começo, aqui:
$nome = POST_('nome');
O certo é:
$nome = $_POST['nome'];
Mais informações:
http://php.net/manual/pt_BR/language.types.array.php
http://php.net/manual/pt_BR/language.variables.php
http://php.net/manual/pt_BR/reserved.variables.post.php
http://php.net/manual/pt_BR/tutorial.forms.php
Continua em branco sem enviar o e-mail está assim agora bah preciso desse contato fiz todos passos que citei na descrição ali da pergunta.
<?php
require "phpmailer/class.phpmailer.php";
//recebe as variaveis
$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];
//arquivos inclusos na pasta phpmailer
//inicando a classe phpmailer
$mail= new PHPMailer();
$mail->IsSMTP();
$mail->Host ="smtp.gmail.com";
$port= 587;
$mail->SMTPAuth = true;
$mail->Username = 'meuemail@gmail.com';
$mail->Password= '******';
$mail->SMTPSecure='tls';
//remetente
$mail->From = "meuemail@gmail.com";
$mail->FromName = "Admin";
//destinatário
$mail->AddAddress($email, $nome);
$mail->AddCC('meuemail@gmail.com');
//dados da mensagem que conterá dados em html
$mail->IsHTML(true);
//Texto e assunto e-mail
$mail->Subject = "Mensagem do site";
$mail->Body = $mensagem;
//Envia e-mail
$enviado = $mail->Send();
//mensagem de resultado
if($enviado){
echo "E-mail enviado com sucesso!";echo "Não foi possível enviar o e-mail!";
}
?>Pus um código que o Beraldo, deu exemplo coloquei acima do código
ini_set( 'display_errors', true );
error_reporting( E_ALL );
Dai apareceu esse erro :
Fatal error: Class 'SMTP' not found in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\phpmailer\class.phpmailer.php on line 1235
Então está dando erro ali na classe SMTP not found q não existe ou sei lá. Se eu tirar o class.phpmailer.php tirar o .php parece que ia ir mais não vai fica tudo em branco.
>
Pus um código que o Beraldo, deu exemplo coloquei acima do código
ini_set( 'display_errors', true );
error_reporting( E_ALL );
Dai apareceu esse erro :
Fatal error: Class 'SMTP' not found in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\phpmailer\class.phpmailer.php on line 1235
Desde o começo estou te pedindo pra habilitar os erros...
A classe SMTP é do PHPMailer. Ela está definida no arquivo class.smtp.php. Verifique se esse arquivo está na mesma pasta que o class.phpmailer.php
>
Desde o começo estou te pedindo pra habilitar os erros...
A classe SMTP é do PHPMailer. Ela está definida no arquivo class.smtp.php. Verifique se esse arquivo está na mesma pasta que o class.phpmailer.php
Beraldo estão sim na mesma página, por isso que não entendo o erro.
Coloquei
require_once('phpmailer/PHPMailerAutoload.php');
apareceu assim
Notice: Undefined index: nome in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\enviar_email.php on line 9
Notice: Undefined index: email in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\enviar_email.php on line 10
Notice: Undefined index: mensagem in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\enviar_email.php on line 11
Não foi possível enviar o e-mail!
Esse erro não é do PHPMailer.
Use isset() para resolver. Veja http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/#undef_index
Postgresql é um banco de dados e não um servidor de e-mails..
O recomendável é utilizar o phpmailer, utiliza mandar e-mails autenticado, só lembrando que a porta de SMTP não é mais a 25,
http://phpmailer.worxware.com/?pg=examplebgmail