Como faço para usar PHPMailer? Não consigo encontrar um tutorial decente simples on-line
Pergunta
Eu estou tentando enviar um Plain / HTML multipart enviar e-mail para fora e eu estou usando atualmente a função de PHP mail (). Muitas pessoas têm recomendado PHPMailer então eu pensei que eu iria dar-lhe um ir.
No entanto, como tudo parece ser hoje em dia, parece muito complicado. Eu baixei ele e ele fala sobre sua instalação e configuração de conexões MySQL e conexões SMTP !? Tudo o que eu quero fazer é usar uma classe agradável que vai construir os e-mails MIME para mim e enviá-los! Eu entendo as possibilidades de SMTP, mas tudo parece tão complexo!
Existe alguma maneira de simplesmente usá-lo, por exemplo, incluir um arquivo php (sem instalação de servidor ou re-compilar o PHP!) E, em seguida, apenas usando a classe para construir e enviar o e-mail?
Eu ficaria muito grato se alguém pudesse explicar as coisas simplesmente! Eu tenho certeza que é possível e eu não posso acreditar que depois de minhas horas de busca, não há realmente bom, simples artigo sobre isso online. TOO Tudo é complicado quando eu sei que não precisa ser!
Solução
Tente SwiftMailer .
Outras dicas
forma bonita (de este link ), primeira estender PHPMailer e definir o padrões para o seu site:
require("class.phpmailer.php");
class my_phpmailer extends phpmailer {
// Set default variables for all new objects
var $From = "from@example.com";
var $FromName = "Mailer";
var $Host = "smtp1.example.com;smtp2.example.com";
var $Mailer = "smtp"; // Alternative to IsSMTP()
var $WordWrap = 75;
// Replace the default error_handler
function error_handler($msg) {
print("My Site Error");
print("Description:");
printf("%s", $msg);
exit;
}
// Create an additional function
function do_something($something) {
// Place your new code here
}
}
Em seguida, incluem o script acima onde for necessário (neste exemplo é nomeado mail.inc.php
) e usar o seu em algum lugar da classe my_phpmailer
recém-criado em seu site:
require("mail.inc.php");//or the name of the first script
// Instantiate your new class
$mail = new my_phpmailer;
// Now you only need to add the necessary stuff
$mail->AddAddress("josh@example.com", "Josh Adams");
$mail->Subject = "Here is the subject";
$mail->Body = "This is the message body";
$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip"); // optional name
if(!$mail->Send())
{
echo "There was an error sending the message";
exit;
}
echo "Message was sent successfully";
Eu não sei nada sobre PHPMailer, mas eu recomendo usar Zend_Mail . Aqui está um exemplo simples com um anexo:
$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->createAttachment($myImage,
'image/gif',
Zend_Mime::DISPOSITION_INLINE,
Zend_Mime::ENCODING_8BIT);
$mail->setFrom('somebody@example.com', 'Some Sender');
$mail->addTo('somebody_else@example.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send();
Provavelmente faz tudo o que você quer (Anexos, HTML, SMTP-configuração, ...). Por padrão, ele usa sendmail
, como a função mail()
, para que você não tem que configurar nada como SMTP se você não precisa dele.
Ele também tem muito boa documentação, assim você não terá exemplos constatação de problemas.