Nous avions précédemment décidé de désactiver la fonction mail car la fonction mail() était souvent utilisée par des utilisateurs malveillants sur notre réseau pour envoyer des spams et autres e-mails non sollicités. Nous recommandons à nos clients d'utiliser une bibliothèque de messagerie pour envoyer des e-mails, et il y en a beaucoup parmi lesquelles choisir.
Framework CodeIgniter.
Si vous utilisez le framework CodeIgniter, vous pouvez utiliser la classe Email intégrée pour envoyer des e-mails. Voici un exemple de code utilisant la classe Email de CodeIgniter :
$this->load->library('email');
$this->email->from('[email protected]', 'eUKhost Limited (No Reply)');
$this ->email->à($email); // $email ="email_id"
$this->email->subject('Welcome to eUKhost Limited.');
$this->email->message('Message ici
');
$this->email->send();
Vous pouvez également charger automatiquement la classe Email dans le fichier config/autoload.php, ce qui signifie que vous n'avez pas besoin d'utiliser la première ligne de code pour instancier la classe Email avant de l'utiliser.
Pour plus d'informations sur la classe Email dans CodeIgniter, voir la documentation.
Bibliothèque PEAR.
La bibliothèque PEAR possède également une classe Mail intégrée pour envoyer des e-mails, y compris des e-mails via l'authentification SMTP avec un compte de messagerie déjà existant. Voici un exemple :
inclure('Mail.php'); // inclut la classe PEAR Mail
$headers =array (‘From’ => $from, ‘To’ => $to, ‘Subject’ => $subject); // les en-têtes des e-mails
$smtp =Mail::factory('smtp', array ('host' => "localhost", 'auth' => true, 'username' => $username, 'password' => $password, 'port' => '587')); // Protocole SMTP avec le nom d'utilisateur et le mot de passe d'un compte de messagerie existant dans votre compte d'hébergement
$mail =$smtp->send($to, $headers, $body); // envoi de l'e-mail
Pour plus d'informations, consultez la page sur la classe Mail sur le site Web de PEAR.
Remarque :le code ci-dessus ne détecte aucune erreur. Nous vous recommandons donc de consulter la documentation pour des exemples plus détaillés.
Pour trouver le port SMTP, allez dans « Configurer le client de messagerie » dans le menu « Plus » dans « Comptes de messagerie » de cPanel. Il peut s'agir du port 587, mais vérifiez pour en être sûr.
Bibliothèque SwiftMailer.
La bibliothèque SwiftMailer est un autre choix populaire pour envoyer des e-mails. Voici un exemple :
$transport =Swift_SmtpTransport::newInstance(‘mail.example.com’, 587); // l'adresse et le port de votre serveur de messagerie. Si vous ne savez pas quel est le vôtre, allez dans cPanel -> Paramètres de messagerie et pour le compte de messagerie spécifique, Plus -> Configurer le client de messagerie - il y sera affiché.
$mailer =Swift_Mailer ::newInstance($transport); // crée spécifiquement une nouvelle instance d'un transport SMTP
$transport->setUsername(‘[email protected]’);
$transport->setPassword(‘your_password_here’);$message =Swift_Message::newInstance();
$message->setSubject('Définir l'objet de l'e-mail');
$message->setFrom(array('[email protected]' => 'Votre nom/Nom de l'entreprise'));
$message->setTo(tableau($email));$message->addPart(‘
Si vous voulez du HTML dans votre e-mail, utilisez addPart()
’, ‘text/html’);$result =$mailer->send($message); // retourne FAUX booléen en cas d'échec
if(!$result)
{
écho 'échec' ;
}
else
{
écho 'succès' ;
}
Certains membres de notre personnel sont expérimentés avec PHP, donc si vous avez besoin d'aide avec votre code PHP pour envoyer des e-mails en utilisant l'une de ces bibliothèques ou une autre bibliothèque que vous souhaitez utiliser, vous êtes le bienvenu pour poster votre requête sur notre Forum d'hébergement Web où un membre du personnel ou un client du forum se fera un plaisir de vous aider.