smtp, sendmail, file * Si method = smtp * (host => IP, dns) * * Activer l'authentification * (auth => login, plain, ....) * (username => ) * (password => ) */ public function __construct($config = null) { if ($config === null) { $c = Zend_Registry::get('config'); $this->config = $c->profil->mail; } else { $this->config = $config; } $this->_charset = 'ISO-8859-15'; // --- Configuration du transport SMTP if ($this->config->method == 'smtp') { $config = array(); if (isset($this->config->auth)) { $config['auth'] = $this->config->auth; if (isset($this->config->username)) { $config['username'] = $this->config->username; } if (isset($this->config->password)) { $config['password'] = $this->config->password; } } if (isset($this->config->port)) { $config['port'] = $this->config->port; } $tr = new Zend_Mail_Transport_Smtp($this->config->host, $config); } // --- Configuration transport Sendmail if ($this->config->method == 'sendmail') { $tr = new Zend_Mail_Transport_Sendmail(); } // --- Configuration transport File if ($this->config->method == 'file') { $tr = new Zend_Mail_Transport_File(array('callback' => array($this, 'recipientFilename'))); } $this->transport = $tr; } /** * Champ From en fonction de la clé de configuration * @param string $configKey */ public function setFromKey($configKey) { $email = $this->config->email->$configKey; $this->setFrom($email, ucfirst($configKey)); } /** * Champ To en fonction de la clé de configuration * @param string $configKey */ public function addToKey($configKey) { $email = $this->config->email->$configKey; $this->addTo($email, ucfirst($configKey)); } /** * Définit le sujet de l'email * @param string $texte */ public function setSubjectC($texte = '') { $this->setSubject($this->txtConvert($texte)); } /** * Définit le corps de l'email au format texte * @param string $texte */ public function setBodyTextC($texte = '') { $this->setBodyText($this->txtConvert($texte)); } /** * Définit le corps de l'email au format html * @param string $html */ public function setBodyHtmlC($html = '') { $this->setBodyHtml($this->txtConvert($html)); } /** * Envoi de l'emai */ public function execute() { return $this->send($this->transport); } //We suppose that character encoding of strings is UTF-8 on PHP script. protected function txtConvert($string) { return mb_convert_encoding($string, 'ISO-8859-1', 'UTF-8'); } protected function recipientFilename($transport) { return $transport->recipients . '_' . mt_rand() . '.tmp'; } }