O envio de emails por dentro dos servidores, é uma tarefa que 100% entre 100% dos usuários, precisam. Enviar email é tarefa universal na internet. Partindo disso, vou ensinar um método muito mais eficiente de enviar emails online, do que simplesmente escrever a função mail toda vez.
Neste artigo, vou abordar a utilização da famosa classe PHPMailer (http://phpmailer.sourceforge.net/), para envio de emails.
Baixe a classe atualizada, no site mencionado. Apesar de não haver atualizações desde 2005, a classe é livre de bugs. E digo isso tendo a utilizado em mais de 50 sistemas, e inclusive em meu próprio site, tendo tido sempre 100% de aproveitamento!
De posse da classe, vamos criar um formulário de contato simples, parecido com este: http://www.flaviajobs.com.br/v6/contato.php
Notando que na action do form, estamos passando os dados do formulário (via POST) para a página enviaemail.php.HTML
<form id="form1" name="form1" method="post" action="enviaemail.php"> Seu nome: <input type="text" name="nome" /> </label> <br /> Seu e-mail: <input type="text" name="email" /> </label> <br /> Assunto da mensagem: <input type="text" name="assunto" /> </label> <br /> Mensagem: <textarea name="msg" cols="30" rows="5"></textarea> </label> <br /> <br /> <input type="submit" name="Submit" value="Enviar" /> </label> </form>www.revistaphp.com.br
PHP
// chamada da classe phpmailer require_once('class.phpmailer.php'); // resgatando os dados passados pelo form $nomeusuario = $_POST['nome']; $emailusuario = $_POST['email']; $assunto = $_POST['assunto']; $mensagem = $_POST['msg']; // 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->IsMail(); // ativa o envio de e-mails em HTML, se false, desativa. $Email->IsHTML(true); // email do remetente da mensagem $Email->From = $emailusuario; // nome do remetente do email $Email->FromName = $nomeusuario; // Endereço de destino do emaail, ou seja, pra onde você quer que a mensagem do formulário vá? $Email->AddAddress("flavia@flaviajobs.com.br"); // informando no email, o assunto da mensagem $Email->Subject = $assunto; // 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>";www.revistaphp.com.br
Feito o trecho principal acima, onde pegamos os dados, e formatamos o envio da mensagem, vamos concluir o script, fazendo o trecho que envia o email propriamente dito. Mais simples, impossível:
PHP
// 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>"; }www.revistaphp.com.br
PHP
$Email->AddBcc("meu@segundoemail.com.br");www.revistaphp.com.br
Se ainda, quiser utilizar smtp para envio do email:PHP
$Email->AddAttachment();www.revistaphp.com.br
PHP
// troque esta linha $Email->IsMail(); // por esta $Email->SmtpSend();www.revistaphp.com.br
Para o envio através de smtp, abra a classe, e na linha 460 (se vc não tirou créditos nem mexeu em nada..) e altere o seguinte:
PHP
// mude aqui, o endereço do seu servidor, ou inclua uma classe de smtp, como indicado abaixo include_once($this->PluginDir . "class.smtp.php");www.revistaphp.com.br
É isso. Espero que seja tão útil pra você, como é pra mim. Em breve irei mostrar como enviar anexos e enviar emails com outras opções através desta classe.
Dúvidas: me escrevam no fjferr@gmail.com ou postem aqui!