web-dev-qa-db-fra.com

Comment envoyer des e-mails depuis PHP sans serveur SMTP installé?

J'ai une plateforme LAMP classique (Debian, Apache2, PHP5 et MySQL) sur un serveur dédié.

J'ai entendu dire que PHPMailer peut envoyer des e-mails sans avoir installé SMTP. PHPMailer est-il le meilleur choix pour cela?

22
dynamic

Oui, PHPMailer est un très bon choix.

Par exemple, si vous le souhaitez, vous pouvez utiliser le serveur SMTP gratuit de Google (c'est comme envoyer depuis votre compte gmail.), Ou vous pouvez simplement ignorer la partie smtp et l'envoyer comme un appel mail () typique, mais avec toutes les bonnes en-têtes, etc. Il propose des e-mails en plusieurs parties, des pièces jointes.

Assez facile à installer aussi.

<?php

$mail = new PHPMailer(true);

//Send mail using gmail
if($send_using_gmail){
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->SMTPAuth = true; // enable SMTP authentication
    $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
    $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
    $mail->Port = 465; // set the SMTP port for the GMAIL server
    $mail->Username = "[email protected]"; // GMAIL username
    $mail->Password = "your-gmail-password"; // GMAIL password
}

//Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";

try{
    $mail->Send();
    echo "Success!";
} catch(Exception $e){
    //Something went bad
    echo "Fail - " . $mail->ErrorInfo;
}

?>
21
Mārtiņš Briedis

Sans SMTP, vous pouvez utiliser la fonction de messagerie PHP: http://php.net/manual/en/function.mail.php

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
3
Justin Jones

Vous pouvez également utiliser phpmailer pour envoyer en utilisant la fonction php mail () par défaut.

Je recommande de ne pas essayer de faire les choses manuellement en utilisant la fonction mail (), utilisez plutôt phpmailer et configurez-le pour utiliser mail ().

Je voudrais souligner que même si vous n'utilisez pas de connexion SMTP pour envoyer les e-mails vous-même, la fonction mail () utilisera soit une connexion SMTP soit le programme sendmail du serveur pour envoyer les e-mails de toute façon, ce qui doivent être configurés pour qu'il fonctionne correctement.

1
arnorhs