Introduction au Zend Framework

 Apprendre Zend Framework

appendix

 Guide de référence Zend Framework


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 61.2% Update 2010-11-28 - Revision 23149 - Version ZF 1.11.x

    Chapitre 45. Zend_Mail

    45.1. Introduction

    45.1.1. Pour commencer

    Zend_Mail fournit des fonctionnalités génériques pour écrire et envoyer des courriels au format texte et MIME. Un courriel peut-être envoyé avec Zend_Mail via le transporteur par défaut Zend_Mail_Transport_Sendmail ou via Zend_Mail_Transport_Smtp.

    Exemple 45.1. Courriel simple avec Zend_Mail

    Un courriel simple est composé d'un destinataire, d'un sujet, d'un message et d'un expéditeur. Pour envoyer ce genre de messages en utilisant Zend_Mail_Transport_Sendmail, vous pouvez faire comme ceci :

    $mail = new Zend_Mail();
    $mail->setBodyText('Ceci est le texte du message.');
    $mail->setFrom('somebody@example.com''un expéditeur');
    $mail->addTo('somebody_else@example.com''un destinataire');
    $mail->setSubject('Sujet de test');
    $mail->send();

    [Note] Définitions minimales

    Pour envoyer un courriel avec Zend_Mail, vous devez spécifier au moins un destinataire, un expéditeur (avec setFrom()), et un message (texte et/ou HTML).

    Pour la plupart des attributs du courriel, il y a des méthodes "get" pour lire les informations stockées dans l'objet mail. Pour plus de détails, merci de vous référer à la documentation de l'API. Une méthode spéciale est getRecipients(). Elle retourne un tableau avec toutes les adresses mail des destinataires qui ont été ajoutés avant l'appel de cette méthode.

    Pour des raisons de sécurité, Zend_Mail filtre tous les champs d'en-tête pour éviter tout problème d'injection d'en-têtes avec des caractères de nouvelles lignes (\n). Les guillemets doubles sont changés en guillemets simples et les crochets en parenthèses dans le nom des émetteurs et des destinataires. Si ces caractères sont dans l'adresse mail, ils sont enlevés.

    Vous pouvez aussi utiliser la plupart des méthodes de l'objet Zend_Mail via une interface fluide.

    $mail = new Zend_Mail();
    $mail->setBodyText('Ceci est le texte du message.')
        ->
    setFrom('somebody@example.com''un expéditeur')
        ->
    addTo('somebody_else@example.com''un destinataire')
        ->
    setSubject('Sujet de test')
        ->
    send();

    45.1.2. Configurer le transport sendmail par défaut

    Le transporteur par défaut pour une instance Zend_Mail est Zend_Mail_Transport_Sendmail. C'est essentiellement un paquet pour la fonction PHP mail(). Si vous souhaitez fournir des paramètres additionnels à la fonction mail(), créez simplement une nouvelle instance du transporteur et fournissez vos paramètres au constructeur. La nouvelle instance du transporteur peut ainsi devenir le transporteur par défaut Zend_Mail, ou il peut être fourni à la méthode send() de Zend_Mail.

    Exemple 45.2. Fournir des paramètres additionnels au transporteur Zend_Mail_Transport_Sendmail

    Cet exemple montre comment changer le Return-Path de la fonction mail().

    $tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
    Zend_Mail::setDefaultTransport($tr);

    $mail = new Zend_Mail();
    $mail->setBodyText('Ceci est le texte du message.');
    $mail->setFrom('somebody@example.com''un expéditeur');
    $mail->addTo('somebody_else@example.com''un destinataire');
    $mail->setSubject('TestSubject');
    $mail->send();

    [Note] Restrictions en mode Safe

    Les paramètres additionnels optionnels peuvent entraînés un échec de la fonction mail() si PHP fonctionne en mode safe.

    [Avertissement] Transport Sendmail et Windows

    Comme le spécifie le manuel PHP, la fonction mail() a des comportements différents sous Windows ou sur les systèmes de type *nix. Utiliser le transport Sendmail sous Windows ne fonctionnera pas conjointement avec addBcc(). La fonction mail() enverra vers le destinataire BCC de manière à ce que tous les destinataires puissent voir qu'il est destinataire !

    Ainsi si vous voulez utiliser BCC sur un serveur Windows, utilisez le transport SMTP pour l'envoi !

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...