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.












