La fonction mail () est une fonction PHP intégrée qui est utilisée pour envoyer des e-mails à partir de l'hôte local. Mais certaines configurations sont nécessaires pour envoyer des emails en utilisant cette fonction. Vous aurez besoin des informations réelles du serveur de messagerie pour configurer la configuration. Vous pouvez utiliser les informations de serveur de messagerie de votre serveur d'hébergement actif, ou vous pouvez utiliser n'importe quelle information de serveur de messagerie gratuite. Un compte Gmail et les informations du serveur SMTP de Gmail sont utilisés dans ce tutoriel pour envoyer des e-mails à l'aide de la fonction mail().
Configuration de l'installation
Deux fichiers seront à modifier pour paramétrer la configuration : le php.ini fichier et un autre fichier est requis pour configurer le serveur de messagerie. Suivez les étapes ci-dessous pour configurer la configuration. De nombreux packages sont disponibles en PHP pour l'envoi d'un email. msmtp est un client de serveur de messagerie PHP utilisé dans ce didacticiel pour envoyer des e-mails à l'aide de la fonction PHP mail().
Pas:
Exécutez la commande suivante pour installer le msmtp package sur Ubuntu pour configurer le serveur de messagerie :
$ sudo apt-get install msmtpCréez un fichier de configuration nommé /etc/msmtprc avec la commande suivante :
$ sudo nano /etc/msmtprcAjoutez le contenu suivant au fichier. Ajoutez l'adresse e-mail valide pour le utilisateur et le mot de passe valide pour le le mot de passe qui sera utilisé pour envoyer un e-mail. Définissez l'adresse e-mail de l'expéditeur pour forme valeur.
valeurs par défauttls sur
tls_starttls activé
tls_trust_file /etc/ssl/certs/ca-certificates.crt
compte par défaut
hôte smtp.Gmail.com
port 587
authentification activée
nom d'[email protected]
mot de passe user_password
de sender_email_address
Exécutez les commandes suivantes pour définir la propriété et l'autorisation pour fichier /etc/msmtprc:
$ sudo chown fahmida /etc/msmtprc$ sudo chmod 0600 /etc/msmtprc
Ouvrez le php.ini fichier et modifiez le contenu suivant avec les valeurs suivantes :
SMTP=smtp.Gmail.comport_smtp=587
sendmail_path = "/usr/bin/msmtp -t -i"
Syntaxe:
bool mail (string $to, string $subject, string $message [, mixed $additional_headers [, string $additional_parameters ]])Cette fonction peut prendre quatre arguments. Le premier argument prend l'adresse e-mail du destinataire. Le deuxième argument reprend l'objet de l'e-mail. Le troisième argument prend le corps de l'e-mail. Le dernier argument est facultatif et contient des informations supplémentaires sur l'e-mail sous forme de chaîne ou de tableau.
Envoi d'e-mails à l'aide de la fonction mail()
Différents exemples d'envoi d'email à l'aide de la fonction mail() de PHP sont présentés dans cette section du tutoriel.
Exemple 1 : envoyer un simple e-mail texte
Cet exemple montre comment un simple e-mail texte peut être envoyé à l'aide de la fonction mail(). Créez un fichier PHP avec le script suivant.
Vous devez définir une adresse e-mail valide pour $à variable pour obtenir la sortie du script suivant. Un texte simple est défini comme corps de message.
//Définir l'adresse e-mail du destinataire$to = "[email protégé]" ;
//Définir l'objet de l'e-mail
$subject = "C'est un e-mail de test";
//Définir le corps de l'e-mail
$message = "Il teste le corps de l'e-mail" ;
//Définir les informations d'en-tête
$headers = "From : [email protected]\r\n" ;
$ en-têtes .= "Répondre à : [email protégé]\r\n" ;
//Envoyer un e-mail à l'aide de la fonction message mail()
if(mail($à,$sujet,$message,$en-têtes))
echo "L'email a été envoyé avec succès.\r\n";
autre
echo "L'e-mail n'a pas été envoyé.
";
?>
La sortie suivante apparaîtra après l'exécution du script à partir du serveur Web si la fonction mail() fonctionne correctement.
La sortie suivante apparaîtra si vous vérifiez la boîte de réception de l'adresse e-mail qui a été définie comme adresse e-mail du destinataire.
Exemple 2 : envoyer un e-mail au format HTML
Cet exemple montre comment un e-mail au format HTML peut être envoyé à l'aide de la fonction mail(). Créez un fichier PHP avec le script suivant.
$message la variable est initialisée avec le contenu HTML qui sera envoyé sous forme de corps d'e-mail. Il est mentionné dans le $ en-tête variable que le contenu de l'email est HTML.
//Définir l'adresse e-mail du destinataire$to = "[email protégé]" ;
//Définir l'objet de l'e-mail
$subject = 'Enregistrement réussi';
//Définir le corps de l'e-mail
$message = '
Votre inscription est terminée avec succès.
nom d'utilisateur = fahmida20
mot de passe = aswQ34ghqw
';
//Définir le retour chariot
$nl = "\r\n" ;
//Définir l'en-tête Content-type
$headers = 'MIME-Version : 1.0'.$nl ;
$ en-têtes .= 'Type de contenu : texte/html ; jeu de caractères=iso-8859-1'.$nl ;
//Définir les informations d'en-têtes supplémentaires
$ en-têtes .= 'À : Mehrab Hossain'.$nl ;
$ en-têtes .= 'De : Administrateur '.$nl ;
$ en-têtes .= 'Cc : [email protégé]'.$nl ;
//Envoyer un e-mail en utilisant la fonction message mail()
if(mail($à,$sujet,$message,$en-têtes))
echo "L'email a été envoyé avec succès.\r\n";
autre
echo "L'e-mail n'a pas été envoyé. \r\n";
?>
La sortie suivante apparaîtra après l'exécution du script à partir du serveur Web si la fonction mail() fonctionne correctement.
La sortie suivante apparaîtra si vous vérifiez la boîte de réception de l'adresse e-mail qui a été définie comme adresse e-mail du destinataire.
Exemple 3 : envoyer un e-mail avec la pièce jointe
Cet exemple montre comment un e-mail peut être envoyé en joignant un fichier texte. Créez un fichier texte avec le script suivant.
Le contenu du fichier texte est lu et encodé avant la pièce jointe et la fonction md5() est utilisée dans le script pour générer un nombre aléatoire pour le contenu mixte. Toutes les informations nécessaires sont ajoutées dans $ en-têtes et $message variables avant d'envoyer l'e-mail.
//Définir l'adresse e-mail du destinataire$to = "[email protégé]" ;
//Définir l'objet de l'e-mail
$subject = "Fichier joint" ;
//Définir le retour chariot
$nl = "\r\n" ;
//Définir un hachage aléatoire qui sera utilisé pour le contenu mixte
$separator = md5(time());
//Lire le contenu du fichier joint
$filename = 'monfichier.SMS';
$content = file_get_contents($filename);
$content = chunk_split(base64_encode($content));
//Définir l'e-mail avec les informations de pièce jointe
$message = "--" . $séparateur . $nl ;
$message .= "Type de contenu : text/plain ; charset="iso-8859-1"" . $nl ;
$message .= "Encodage de transfert de contenu : 8 bits" . $nl ;
$message .= "Un fichier texte est joint à l'e-mail." . $nl ;
$message .= "--" . $séparateur . $nl ;
$message .= "Type de contenu : application/octet-stream ; name="" . $nom de fichier . """ . $nl ;
$message .= "Encodage de transfert de contenu : base64" . $nl ;
$message .= "Contenu-Disposition : pièce jointe" . $nl ;
$message .= $contenu . $nl ;
$message .= "--" . $séparateur . "--" ;
//Définir l'en-tête Content-type
$headers = 'MIME-Version : 1.0'.$nl ;
$ en-têtes .= "De : [email protégé]".$nl ;
$ en-têtes .= "Répondre à : [email protégé]".$nl ;
$ en-têtes .= "Type de contenu : multipart/mixte ; bound="" . $séparateur . """ .$nl ;
//Envoyer un e-mail à l'aide de la fonction message mail()
if(mail($à,$sujet,$message,$en-têtes))
echo "L'email a été envoyé avec une pièce jointe avec succès.\r\n";
autre
echo "L'e-mail n'a pas été envoyé. \r\n";
?>
La sortie suivante apparaîtra après l'exécution du script à partir du serveur Web si la fonction mail() fonctionne correctement.
La sortie suivante apparaîtra si vous vérifiez la boîte de réception de l'adresse e-mail qui a été définie comme adresse e-mail du destinataire.
Conclusion
De nombreuses façons existent en PHP pour envoyer des emails. La fonction PHP mail() ne fonctionne pas correctement sur Ubuntu après avoir défini la configuration. Ce tutoriel montre les configurations nécessaires et la manière d'envoyer des emails en utilisant la fonction PHP mail().