PHP

Vous avez la possibilité d'envoyer vos emails de plusieurs manières

  • Nativement
  • Avec une librairie dédiée

Nativement

PHP possède de manière native la fonction "Mail" permettant l'envoi d'email. Les envois sont alors effectués par l'intermédiaire du paramètre défini dans le php.ini de Apache. Pour plus d'informations sur la modification du php.ini, vous pouvez lire cet article.

Voici un exemple du code

				$expediteur   = "from@example.com";
				$destinataire = "to@example.com";
				$message_html = "Votre message au format html";
				$subject      = "votre sujet";

				mail($destinataire, $subject, $message_html,
					 "From: $expediteur\r\n".
						"Content-Type: text/html; charset=\"utf-8\"\r\n");
			

Avec une librairie dédiée

L'utilisation de librairies permet de simplifier l'écriture du code pour l'envoi d'email. Elles sont pour la plupart gratuite et open-source. Dans le cas de PHP, nous vous conseillons SwiftMailer. Cette librairie est l'une des plus populaires et surtout des plus efficaces.

  • Commencez par installer SwiftMailer. Vous pouvez effectuer cette manipulation avec Composer ou effectuer un clone depuis le compte GitHub
  • Incluez la libraire SwiftMailer dans votre développement
  • Complétez l'exemple suivant selon vos besoins. Pour plus de renseignements, nous vous invitons à lire la documentation de SwiftMailer
					/**
					 * define your settings
					*/
					
					require __DIR__ . '/vendor/autoload.php'; // SwiftMailer library
					
					$username="your tipimail username";
					$password="your tipimail password";


					$transport = Swift_SmtpTransport::newInstance('smtp.tipimail.com', 25);
					/*
					 * if you want to use tls
					 * $transport = Swift_SmtpTransport::newInstance('smtp.tipimail.com', 587, "tls");
					*/

					//set the credential to send email
					$transport->setUsername($username);
					$transport->setPassword($password);
					$swift = Swift_Mailer::newInstance($transport);

					//set your email
					$message_html = "Votre message au format html";
					$message_text = "Votre message au format text";
					$expediteur = array('from@example.com' => 'From');
					$destinataire = array(
						'to@example.com' => 'To'
					);

					$message = Swift_Message::newInstance('Votre objet')
							->setFrom($expediteur)
							->setTo($destinataire)
							->setBody($message_html, 'text/html')
							->addPart($message_text, 'text/plain');
							//->attach(Swift_Attachment::fromPath('filename.ext'));

					/*
					 * If you want to add headers
					 * $headers = $message->getHeaders();
					 * $headers->addTextHeader('X-TM-TRACKING', '{"html":{"open" : 1, "click": 0},"text":{"click": 1}}');
					*/

					if ($recipients = $swift->send($message, $failures)) {
						echo 'Message successfully sent!';
					} else {
						echo "There was an error:\n";
						print_r($failures);
					}