En cet article, nous allons regarder certaines des questions fréquemment posées concernant le E-mail et le PHP. Nous commencerons en regardant une issue plus fondamentale : comment envoyer réellement un E-mail comme HTML.
|
|
Car la fonction de courrier de PHP se transfère sur envoyer des E-mails plats des textes sauf indication contraire, une question fréquente est comment envoyer des E-mails de HTML en utilisant la fonction de courrier. Le format pour la fonction de courrier est comme suit :
mail($to, #, #, #) ;
à là où $to est l'adresse de E-mail à envoyer, $subject est la ligne soumise pour le E-mail, $message contient le message de E-mail, et $headers contient tous les en-têtes facultatifs que vous pouvez souhaiter pour vous ajouter.
Pour envoyer un E-mail qui est identifié et traité comme HTML, vous devez employer deux en-têtes spéciaux :
Pantomime-Version : Contenu-type 1.0 : text/html ; charset=iso-8859-1
Ceux-ci devraient être inclus dans la variable de $headers comme montré dans le code complet suivant :
< ?php $to = "gareth@myemail.com" ; $subject = "ceci est un E-mail de HTML" ; $message = "< style=\"font-famille d'envergure : Arial, Helvetica, sans-empattement ; police-taille : 20px ; police-poids : "bold" ; couleur : # 009900 \">"; $message. = "c'est un message de E-mail de HTML" ; $message. = "</envergure >" ; $headers = "Pantomime-Version : 1.0\n "; $headers. = "Contenu-type : text/html ; charset=iso-8859-1\n "; $headers. = "de : gareth<gareth@myemail.com > "; mail($to, #, #, #) ; ? >
Il est important de noter cela pour courir le code, vous devez avoir une installation de serveur de E-mail, ainsi il est le plus facile d'examiner ce code sur votre serveur principal d'enchaînement.
Pendant que le E-mail est envoyé comme HTML, vous pouvez inclure des étiquettes de HTML dans le message, comme montré dans le code précédent. Quand le E-mail est reçu, le E-mail sera rendu comme HTML page (supposant que le programme du E-mail de l'utilisateur a ce service).
Si vous souhaitez envoyer un bulletin dehors à un certain nombre d'utilisateurs immédiatement, cachant le E-mail adresse ainsi le destinataire ne peut pas voir à qui vous avez envoyé autrement le courrier, vous peut employer l'en-tête de bcc, qui représente "la copie au carbone sans visibilité." Toutes les adresses dans l'en-tête de bcc seront envoyées à une copie du E-mail, mais elles ne peuvent pas voir à qui il a été envoyé autrement. Le code suivant montre un exemple fonctionnant, qui envoie le E-mail à chaque adresse dans la rangée fournie :
< ?php $addresses = array("fred@cemetry.com",
"george@another.com") ; ? > < ? $to =
"gareth@myemail.co.uk" ; $subject = "Bulletin de PHP" ;
$message = "ce E-mail montre comment employer un en-tête de
BCC pour envoyer un bulletin" ; $headers. = "de :
gareth<gareth@myemail.co.uk>\n "; $headers. = "bcc
: "; $count = 0 ; foreach($addresses comme ==
0){$headers de $address){if($count. = # ;
}else{$headers. = ",". # ; }
$count ++;} $headers. = "\n" ; mail($to,
#, #, #) ; ?
>
Dans le code précédent, toutes les adresses de E-mail sont indiquées dans la rangée de $addresses. Ceci a pu être changé pour employer un champ d'un recordset pour obtenir les adresses de E-mail d'une table de base de données.
Si vous envoyez le même E-mail à un grand nombre d'utilisateurs, la méthode précédente est la meilleure manière. C'est parce que PHP entre en contact avec le mail server une fois, et alors le mail server a le travail d'envoyer le E-mail à toutes les adresses de E-mail indiquées, qui signifie que le manuscrit de PHP finit plus vite et emploie peu de ressources.
Si, cependant, vous envoyez un E-mail personnalisé, chaque E-mail devra être envoyé individuellement par PHP pour ajouter les données individualisées.
Si vous envoyez un E-mail personnalisé à un grand nombre d'utilisateurs, vous devez envoyer chaque E-mail individuellement, et il peut prendre un moment pour que le manuscrit envoie tous les E-mails. Ceci crée un problème parfois, car le manuscrit peut chronométrer dehors avant que tous les E-mails aient été envoyés.
Pour éviter ceci, vous devez augmenter la quantité de temps pour laquelle le manuscrit peut fonctionner. L'arrangement de défaut est habituellement de 30 secondes. Vous pouvez augmenter le délai pour un manuscrit en ajoutant le code suivant au dessus de la page :
< ?php set_time_limit(5*60) ; ? >
Ceci permettra au manuscrit de fonctionner pendant jusqu'à 5 minutes (60 * 5 = 300 secondes).
Online: 474 users browsing the articles directory
|
|