Devido ao grande número de Span que são enviados diariamente, gerando um grande consumo de recursos dos servidores, além da frustração e perda de tempo dos usuários finais, os servidores estão cada vez mais apertando o cerco contra esse tipo de prática, desenvolvendo algoritmos que alem de não conseguir broquear eficientemente esses e-mail acabam broqueando mensagem que podem ser importantes. Como por exemplo, o servidor IG, que além de ser o menos eficaz contra esse tipo de pratica, acaba não recebendo nenhum e-mail que não seja enviado por servidor SMTP autenticado. Prejudicando muito os desenvolvedores. Portanto através de uma classe SMTP simples é bastante útil vamos desenvolver um sistema para envio de e-mail com autenticação SMTP. Lembrando que apenas realizar o envio de e-mail autenticado não garante que o seu e-mail não seja classificado como Spam, já que isso não ocorrer, depende de diversos fatores como horário, conteúdo, quantidade, tamanho e etc. Eu utilizo essa classe e nunca tive problemas com nenhum servidor, funciona normalmente com IG, HOTMAIL, BOL, UOL, TERRA, Click21 e muitos outros.
Essa classe faz o envio de e-mails em formato de texto ou HTML. Faça o Download da Classe
Agora vamos fazer a inclusão da classe smtp.class.php que vai realizar a conexão e autenticação SMTP para que os e-mails possam ser enviados.
Se você estiver no modo de visualização do projeto mude para o modo de visualização do código.
Dentro do Bloco de código vamos fazer a inclusão da classe smtp.class.php através do comando include
<?php
include ("smtp.class.php");
?>
Com a classe já incluída agora vamos configurar a conexão SMTP que necessita de um endereço de servidor (host), usuário (user), senha (pass) e informar que será ativada a autenticação (debug) para que possa enviar os e-mails corretamente. Para fazer a configuração basta apenas declarar o valor das variáveis utilizada na classe com os seus dados.
<?php
include ("smtp.class.php");
/* Configuração da classe.smtp.php */
$host = “smtp.mail.yahoo.com.br”; /*host do servidor SMTP */
$smtp = new Smtp($host);
$smtp->user = “usuario”; /*usuario do servidor SMTP */
$smtp->pass = “senha”; /* senha dousuario do servidor SMTP*/
$smtp->debug =true; /* ativar a autenticação SMTP*/
?>
Para que a mensagem possa ser enviada ela deve conté um remetente ($from) que é o seu e-mail, um destinario ($to) que vai se o e-mail de quem vai receber, um assunto ($subject), e a mensagem ($msg), e depois devemos chamar a classe SMTP, passar as configurações e mandar enviar.
/* envia uma mensagem */
$from= "seuemail@seusite.com.br"; /* seu e-mail */
$to = "destinario@seusite.com.br"; /* o e-mail cadastrado*/
$subject = "Teste de e-mail utilizando SMTP"; /* assunto da mensagem */
$msg = "Você está recebendo esta mensagem de teste<br>";
$msg .= "Para confirma clique no link abaixo";
$smtp->Send($to, $from, $subject, $msg);/* faz o envio da mensagem */
Esse é apenas um exemplo, no e-mail do destinario você pode colocar uma variavel vinda de um formulario, ou vindo de um banco de dados.
muito bom esse exemplo.
eu estava tento problemas com a funcao mail original do php, q os servidores do hotmail estavam simplismente excluindo as mensagens…
e isso resolveu meu problema ..
abracos e sucesso Marcelo
Acho que compreendi, mais infelizmente não consegui fazer rodar na pratica, não sei onde inserir esse codigo em meu formulário. Esse é o grande mau de quem é desginer, e quando chega o momento onde não tem como fugir da programação.
Eu também tenho o mesmo problema da Andréia.
Estou tentando estudar php mas est’á difícil
as vazes não funciona.
è legal o tutorial mas to com o mesmo problema do André e da Lucia xD
eu intendi legal e num sei onde coloca os codigos.
To começando com programação e pega um negocio desse logo de primeira faz qualquer um ficar louco já que o aprendizado e conhecimento que tenho do assunto foi adiquirido todo pela internet atraves de foruns.
gostaria de entender mais o php
tem algum livro para pessoas que nada sabe
boenas
estou tendo o msmo problema da Andreia, da LuciaPinto, do Thiago, do Claudio e do Cebola.
perdi o pinto na segunda guerra =/
show de bola muito bom mesmo ajudou e muito heheheheeheh
bom.. muito bom o arigo… tava com problemas com a funçao mail do php… os form eram enviado, mas, o email mandava pra lixeira, com alguns dias excluia..
agora resolvi.. boa… abraço a todos!!!!
como validar apenas o e-mail do usuário?
Obrigado pelo script
valeu mesmo
endereço correto da classe: http://www.marceloramos.blog.br/publicacao/php/smtp.class.php.html
Gostei bem do tópico.
mais tem como vc me informar o host do servidor SMTP do hotmail.
obrigado.
Não consigo baixar a o arquivo smtp.class.php
gostaria de saber como um visitante preenche um comentario e ele aparece automatico na mesma pagina e possa ja ser lido apos o visitante envie o comentario
at. Alexandre Dutra
Cara muito bom… mas tenho uma dúvida.
Preciso enviar uma cópia para outro e-mail… tentei tudo já e não consigo. Pode me ajudar?
Marcelo eu poderia me autenticar por exemplo com uma conta teste@teste.com.br e o meu from ser de uma conta teste1@hotmail.com ou eu teria o risco de os provedores entender meus emails como spam ? Desde já agradeço
Muito obrigada pela exemplo que funciona!
Valeu, funciona com o link da classe q está nos comentarios!
Olá Marcelo vc poderia me enviar esta classe por email ?
pois está off o link
Caros, tenho percorrido o Google sobre formulário, estou precisando criar um formuário aonde terá vários campos, isso era possivel enquanto o smtp.eb.mil.br funcionava, agora estou usando um smtp que deve ser autenticado, até tudo bem, o exemplo assima funciona. Para adicionar mais campos e fazer com que estes campos sejam incluso no corpo do email? Já tentei de tudo, até exemplos na web em que o autor diz que é possivel fazer, ensina, mas não funciona. Ja tentei criar outra variavel do $Body, mas nada adiantou.
Hoje tive essa mensagem do suporte do servidor que hospedo meu site:
“O sistema do Google esta bloqueando o envio dos emails através da função mail do servidor, pois esta função envia os emails com o remetente o servidor e o mesmo não esta aceitando. Neste caso recomendo que altere os formulário para a função SMTP do PHP onde realizaria a autenticação no servidor de email do google para enviar os dados do formulário.”
Utilizo o serviço do Google APPS, alguém sabe como resolver?
Esta classe ainda existe? Está dando erro para fazer download!
Abraço!
Cara estou precisando anexar um arquivo na hora de enviar o email, pesquisei na net e só encontrei coo fazer isso com a funcao mail. tentei coloca-la com essa classe que vc passou e nao estou conseguindo, vc saberia me ajudar?
Boa tarde!
Pode postar o link para a classe novamente?