2010-12-15 63 views
1

Voici ce que je dois faire. Je dois être en mesure de générer dynamiquement des courriels personnalisés. J'ai utilisé la fonction mail() de PHP, mais j'ai été encouragé à essayer phpmailer ou Zendmail. Mais il ne semble pas être capable de gérer les emails personnalisés.Courrier HTML avec valeurs dyanmic

Ce que je dois faire est de pouvoir saisir les valeurs du formulaire et les insérer dans le corps du message. Je l'ai fait:

$message = '<html><body><p>First name: ' $first . '<br/><br/>'; 
$message .= ...(rest of message) 

Alors je:

mail($recipient, $subject, $message, $headers); en utilisant les en-têtes droite pour le HTML.

Existe-t-il un moyen de faire ce que je veux avec phpmailer ou Zendmail? Y a-t-il un moyen de faire cela dans OOP au lieu de cela qui pourrait améliorer ce qui devient des pages très longues? J'apprécierais quelques conseils.

+0

D'une manière générale, le chemin est à peu près le même avec Zend_Mailer qu'avec mail(): vous composez le message et l'envoyez. Quelle partie avez-vous des problèmes avec? –

+0

Pourquoi ne pas faire ce que vous voulez avec phpmailer ou Zendmail? En outre, la façon dont vous envoyez actuellement votre courrier est incorrecte, sauf si vous voulez que le texte de ce code HTML s'affiche. – Brad

+0

Si vous utilisez les bons en-têtes, le code HTML ne s'affiche pas. Juste le contenu formaté. Je ne peux pas obtenir les valeurs à afficher dans le courrier HTML. Je viens d'obtenir des espaces vides où les valeurs dynamiques doivent être insérées. – sehummel

Répondre

2

En utilisant phpmailer vous pouvez essayer le code ci-dessous.

$message = '<html><body><p>First name: '. $first . '<br/><br/>'; 

$mailer = new PHPMailer(); 
// other fields/properties 
$mailer->Subject = $subject; 
$mailer->AddAddress($receipient); 
$mailer->IsHTML(true); 
$mailer->Body = $message; 
$mailer->Send(); 

Vous devez cependant définir les autres champs pour qu'ils fonctionnent correctement.

+0

Vous avez oublié le '.' avant' $ first'. – Jonah

+0

Scartag, j'ai essayé ça et ça ignore les valeurs dynamiques. D'autres pensées? – sehummel

+0

@ shummel7845: Vos variables sont alors vides. Vous devez savoir pourquoi. – Jonah

0

Oui, l'un des principaux points d'avoir une bibliothèque de messagerie est de pouvoir créer des emails complexes (plus facilement). Je recommanderais aussi SwiftMailer.

http://swiftmailer.org