Um pouco mais de como usar o Zend_Db_Select Anexando arquivos no E-mail

Enviando E-mail através do Zend_Mail

0 comments
Enviando E-mail através do Zend_Mail

o Zend_Mail prove uma série de classes que facilitam o envio de E-mail. Prove envio simples utilizando a função mail() do PHP, até envio mais complexo usando autenticão ou mesmo com acesso via SSL.

Os métodos do Zend_Mail também prove suporte interface fluent que facilita a programação. Veja abaixo um exemplo simples de envio de E-mail:

<?php
require_once 'Zend/Config.php';
require_once 'Zend/Mail.php';

$mail = new Zend_Mail();
$mail->setFrom('fulano@dominio.com.br', 'Fulano')   // Quem esta enviando
     ->addTo('beltrano@gmail.com', 'Beltrano Souza')// para quem esta enviando
     ->setBodyText("Teste de mensagem")             // mensagem sem formatação
     ->setSubject("Teste de assunto")               // Assunto
     ->send();                                      // Enviar

Neste exemplo acima o E-mail é enviado com a função mail() do PHP.

/* Os métodos addCc, addTo e setFrom aceitam como parâmetro apenas o $email, ou pode ser informado o $email e $nome. */.

Enviando E-mail com autenticação no servidor de E-mail

o Zend_Mail pode ser auxiliado pela classe  Zend_Mail_Transport_Smtp no envio de e-mail autenticado. Esta classe prové uma série de recursos para se conectar via SMTP em servidores de e-mail.

/* aqui no meu laboratório a unica coisa que não tenho é servidor de envio de E-mail. então sempre faço os envios de e-mail para testar através de autenticação.  Também em muitos sistemas o envio autenticado ainda passa para o servidor de produção, para que e-mail enviado pelo PHP seja considerado Spam */

Abaixo exemplo de envio de E-mail autenticado.

<?php
require_once 'Zend/Config.php';
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Smtp.php';

$config = array (
          'auth' => 'login',                     // Email serão autenticados
          'username' => 'email@servidor.com.br', // informa o login do E-mail
          'password' => '123456789');            // senha

// uma instancia do Zend_Mail_Transport_Smtp é criada e informamos o DNS ou IP
// do nosso servidor de SMTP e as opções adicionadas no array.
$mailTransport = new Zend_Mail_Transport_Smtp("smtp.servidor.com.br", $config);

$mail = new Zend_Mail();
$mail->setFrom('fulano@dominio.com.br', 'Fulano')
     ->addTo('beltrano@gmail.com', 'Beltrano Souza')
     ->setBodyText("Teste de mensagem")
     ->setSubject("Teste de assunto")
     ->send($mailTransport);

Valide as configurações e teste este exemplo.

Enviar Com Cópia (CC) ou Com Cópia Oculta (CCO)

A classe Zend_Mail dá suporte a envio de cópias simples ou ocultas aos e-mail. Para isso temos os métodos addCc() e addBcc(). O método addBcc somente aceita o E-mail.

<?php
require_once 'Zend/Config.php';
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Smtp.php';

$config = array (
          'auth' => 'login',                     // Email serão autenticados
          'username' => 'email@servidor.com.br', // informa o login do E-mail
          'password' => '123456789');            // senha

$mailTransport = new Zend_Mail_Transport_Smtp("smtp.servidor.com.br", $config);

$mail = new Zend_Mail();
$mail->setFrom('fulano@dominio.com.br', 'Fulano')
     ->addTo('beltrano@gmail.com', 'Beltrano Souza')
     ->addBcc('seila@servidor.com')
     ->addBcc('esteVaicomCC@servidor.com')
     ->setBodyText("Teste de mensagem")
     ->setSubject("Teste de assunto")
     ->send($mailTransport);

/* Se for enviar várias pessoas com cópia oculta, direcione uma cópia direta ao seu e-mail, para diminuir a possibilidade de ser considerado Spam */

Enviar e-mail formatado

Muitas vezes queremos enviar e-mail com alguma formatação e até usar um editor como o caso do FCKEditor para este fim.

Então neste caso a definição do corpo do E-mail não é mais pelo setBodyText, mais agora pelo setBodyHtml.

<?php
require_once 'Zend/Config.php';
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Smtp.php';

$config = array (
          'auth' => 'login',                     // Email serão autenticados
          'username' => 'email@servidor.com.br', // informa o login do E-mail
          'password' => '123456789');            // senha

$mailTransport = new Zend_Mail_Transport_Smtp("smtp.servidor.com.br", $config);

$mail = new Zend_Mail();
$mail->setFrom('fulano@dominio.com.br', 'Fulano')
     ->addTo('beltrano@gmail.com', 'Beltrano Souza')
     ->setBodyHtml('<p>Esta mensagem chegará formatada no <b>email</b> do cliente<p>')
     ->setSubject("Teste de assunto")
     ->send($mailTransport);

Enviando E-mail MultiParts

E-mail MultiParts são e-mail ao qual enviamos a mensagem formatada em HTML e outra sem formatação. Os leitores de E-mail selecionarão a que melhor se adapta e o exibirá.

Para isso definimos uma mensagem não formatada no setBodyText, e uma mensagem formatada no setBodyHtml.

<?php
require_once 'Zend/Config.php';
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Smtp.php';

$config = array (
          'auth' => 'login',                     // Email serão autenticados
          'username' => 'email@servidor.com.br', // informa o login do E-mail
          'password' => '123456789');            // senha

$mailTransport = new Zend_Mail_Transport_Smtp("smtp.servidor.com.br", $config);

$mail = new Zend_Mail();
$mail->setFrom('fulano@dominio.com.br', 'Fulano')
     ->addTo('beltrano@gmail.com', 'Beltrano Souza')
     ->setBodyHtml('<p>Esta mensagem chegará formatada no <b>email</b> do cliente<p>')
     ->setBodyText('O Cliente se acessar de dispositivos móveis irá ler esta mensagem')
     ->setSubject("Teste de assunto")
     ->send($mailTransport);

Em cliente de E-mail de telemoveis, a maioria irá exibir o formato texto.

Related Posts with Thumbnails

Leave a Reply