Changeset 10071
- Timestamp:
- 07/02/08 17:09:34 (3 months ago)
- Files:
-
- doc/branches/1.1/cookbook/pt/email.txt (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
doc/branches/1.1/cookbook/pt/email.txt
r9587 r10071 9 9 O Swift Mailer é uma poderosa biblioteca PHP5 totalmente orientada a objetos, que irá satisfazer 120% das suas necessidades de email. 10 10 11 Ela está disponível em um diretório SVN separado, e por isso o seu projeto não irá ter problemas só porque voce decidiu atualizar a biblioteca. É vocequem decide se quer atualizar para uma versão mais nova.12 13 A forma de enviar emails pelo symfony é muito simples. Voc e cria um partial ou um componente que irá manipular o conteúdo do email, e usaro Swift para enviá-lo de uma forma bastante flexível.11 Ela fica armazenada em um diretório SVN separado, e por isso não haverá problema algum com o seu projeto caso você decida atualizar a biblioteca. É você quem decide se quer atualizar para uma versão mais nova. 12 13 A forma de enviar emails pelo symfony é muito simples. Você cria um partial ou um componente que irá manipular o conteúdo do email, e usa o Swift para enviá-lo de uma forma bastante flexível. 14 14 15 15 Instalando 16 16 ---------- 17 17 18 Se o seu projeto já estiver usando SVN, voc epode instalá-lo usando o comando `svn:externals`:18 Se o seu projeto já estiver usando SVN, você pode instalá-lo usando o comando `svn:externals`: 19 19 20 20 $ cd /path/to/symfony/project … … 26 26 swift http://swiftmailer.svn.sourceforge.net/svnroot/swiftmailer/tags/php5/3.3.3/lib/ 27 27 28 Se o seu projeto não estiver usando SVN, voc eainda pode baixá-lo pelo subversion usando os seguintes comandos:28 Se o seu projeto não estiver usando SVN, você ainda pode baixá-lo pelo subversion usando os seguintes comandos: 29 29 30 30 $ cd /path/to/symfony/project … … 39 39 Não há configuração específica de email. 40 40 41 Para manter o seu projeto flexível, voc e deve utilizar o arquivo de configuração `app.yml` para inserir os endereços de email. Desse modo, voce pode ter vários remetentes/destinatários de acordo com o ambiente(environment) que voceestiver trabalhando. E caso alguém precise alterá-los, não será necessário vasculhar todo o código do projeto. O lugar onde fazer a alteração será bastante óbvio.41 Para manter o seu projeto flexível, você deve utilizar o arquivo de configuração `app.yml` para inserir os endereços de email. Desse modo, você pode ter vários remetentes/destinatários de acordo com o ambiente(environment) que você estiver trabalhando. E caso alguém precise alterá-los, não será necessário vasculhar todo o código do projeto. O lugar onde fazer a alteração será bastante óbvio. 42 42 43 43 … … 45 45 ---------------- 46 46 47 A partir do symfony 1.1, voc epode pegar facilmente o conteudo de partials ou componentes a partir de uma ação:47 A partir do symfony 1.1, você pode pegar facilmente o conteudo de partials ou componentes a partir de uma ação: 48 48 49 49 [php] … … 109 109 ------------------------------------------ 110 110 111 Quando voc e instancia a classe Swift, vocepode utilizar diferentes objetos do tipo Swift_Connection.111 Quando você instancia a classe Swift, você pode utilizar diferentes objetos do tipo Swift_Connection. 112 112 113 113 * **Swift_Connection_NativeMail** é o driver de conexão que irá utilizar a funcão `mail`, nativa do PHP. 114 114 115 * **Swift_Connection_SMTP** envia os emails através de um servidor SMTP. O construtor pede tr es parametros, todos opcionais:115 * **Swift_Connection_SMTP** envia os emails através de um servidor SMTP. O construtor pede três parâmetros, todos opcionais: 116 116 117 117 [php] … … 120 120 Veremos daqui a pouco como usar este driver para enviar emails através de um servidor SMTP seguro, como o Gmail, por exemplo. 121 121 122 * **Swift_Connection_Sendmail** utiliza o binário sendmail para o envio de emails. Voc epode especificar o caminho para ele no próprio construtor.123 124 * **Swift_Connection_Multi** é o primeiro driver especial, que pode ser usado para combinar mais de um driver de conexão. Ele irá automaticamente tentar um outro driver de conexão, caso o servidor SMTP esteja fora do ar ao tentar enviar o email, por exemplo. O construtor irá receber um array de inst ancias do objeto `Swift_Connection`, que podem, inclusive, conter outras instancias do `Swift_Connection_Multi` (embora a razão de fazer isto seja um pouco obscura).125 126 * **Swift_Connection_Rotator** é o último, que faz um pouco mais do que o `Swift_Connection_Multi`: ele guarda uma lista dos servidores que estão inacessíveis, e faz uma rotação entre os servidores que estão ativos. O modo de usá-lo vai alem do escopo desse documento, e voc edeve procurar maiores informações na própria documentação do [Documentação do Swift](http://swiftmailer.org/wikidocs/#the_connections "Documentação do Swift").122 * **Swift_Connection_Sendmail** utiliza o binário sendmail para o envio de emails. Você pode especificar o caminho para ele no próprio construtor. 123 124 * **Swift_Connection_Multi** é o primeiro driver especial, que pode ser usado para combinar mais de um driver de conexão. Ele irá automaticamente tentar um outro driver de conexão, caso o servidor SMTP esteja fora do ar ao tentar enviar o email, por exemplo. O construtor irá receber um array de instâncias do objeto `Swift_Connection`, que podem, inclusive, conter outras instâncias do `Swift_Connection_Multi` (embora a razão de fazer isto seja um pouco obscura). 125 126 * **Swift_Connection_Rotator** é o último, que faz um pouco mais do que o `Swift_Connection_Multi`: ele guarda uma lista dos servidores que estão inacessíveis, e faz uma rotação entre os servidores que estão ativos. O modo de usá-lo vai alem do escopo desse documento, e você deve procurar maiores informações na própria documentação do [Documentação do Swift](http://swiftmailer.org/wikidocs/#the_connections "Documentação do Swift"). 127 127 128 128 Usando os servidores SMTP do Gmail … … 131 131 Por que alguém iria querer usar uma conta do gmail para enviar emails? 132 132 133 * Voc enão precisará configurar e administrar um servidor SMTP133 * Você não precisará configurar e administrar um servidor SMTP 134 134 * Seus emails não serão vistos como spam pelos usuários do hotmail (ou similares) 135 * Voc eganha uma cópia carbono de todos os emails enviados, na pasta `Emails Enviados`135 * Você ganha uma cópia carbono de todos os emails enviados, na pasta `Emails Enviados` 136 136 137 137 Quais são as limitações? 138 138 139 * Voc enecessita de uma conta no gmail (é de graça!)139 * Você necessita de uma conta no gmail (é de graça!) 140 140 * As negociações entre SMTP e SSL demoram um pouco mais do que usar apenas SMTP. 141 * Voc e não pode enviar emails a partir de um email aleatório (mas vocepode adicionar um novo endereço `Enviar Email Como` nas suas configurações de conta)141 * Você não pode enviar emails a partir de um email aleatório (mas você pode adicionar um novo endereço `Enviar Email Como` nas suas configurações de conta) 142 142 143 143 Veja como configurar um objeto do Swift: … … 145 145 [php] 146 146 $connection = new Swift_Connection_SMTP('smtp.gmail.com', 465, Swift_Connection_SMTP::ENC_SSL); 147 $connection->setUsername(' romain@gmail.com');148 $connection->setPassword(' SuperSecurePassword');147 $connection->setUsername('vitormv@gmail.com'); 148 $connection->setPassword('senhaUltraSegura'); 149 149 150 150 $mailer = new Swift($connection); … … 153 153 ----------------- 154 154 155 Para embutir imagens no seu email, voc e precisar gerar algumas URLs a partir dos objetos anexadosantes de exibir seu conteudo. Veja um exemplo de como fazer isto:155 Para embutir imagens no seu email, você precisa convertê-las para um formato apropriado antes de exibir seu conteudo. Veja um exemplo de como fazer isto: 156 156 157 157 [php] … … 180 180 $mailer->disconnect(); 181 181 182 No seu partial/componente voc epode incluir facilmente as imagens embutidas da seguinte maneira:182 No seu partial/componente você pode incluir facilmente as imagens embutidas da seguinte maneira: 183 183 184 184 <img src="<?php echo $images['symfony']; ?>" alt="Symfony Project" /> … … 190 190 ------ 191 191 192 Felizmente, anexar um arquivo a um email é tão simples quanto gostaríamos que fosse:192 Felizmente, anexar um arquivo a um email é tão simples quanto esperaríamos que fosse: 193 193 194 194 [php] … … 198 198 ----------------------- 199 199 200 Na maioria da vezes, voc e pode querer enviar o mesmo email para mais de uma pessoa, ou mesmo incluir outras pessoas como cópias carbono. Vocepode fazer isso facilmente usando a classe `Swift_RecipientList`.200 Na maioria da vezes, você pode querer enviar o mesmo email para mais de uma pessoa, ou mesmo incluir outras pessoas como cópias carbono. Você pode fazer isso facilmente usando a classe `Swift_RecipientList`. 201 201 202 202 [php] … … 206 206 $destinatarios->addBcc($bcc); 207 207 208 Se voc e estiver enviando emails em um loop, não se esqueça de usar o método `->flush()` na sua lista de $destinatarios, ou vocevai ter um trabalhão pra explicar porque alguém recebeu 500 cópias de uma newsletter.208 Se você estiver enviando emails em um loop, não se esqueça de usar o método `->flush()` na sua lista de $destinatarios, ou você vai ter um trabalhão pra explicar porque alguém recebeu 500 cópias de uma newsletter. 209 209 210 210 Enviando emails a partir de uma tarefa (task) 211 211 --------------------------------------------- 212 212 213 O processo é exatamente igual à maneira como voc e faria a partir de uma ação, com uma pequena diferença: Vocenão pode mais utilizar os métodos da `sfAction`.214 215 Voceprecisará utilizar as funções `get_partial()` e `get_component()` contidas no `PartialHelper` ao invés dos métodos `sfAction::getPartial()` e `sfAction::getComponent`.213 O processo é exatamente igual à maneira como você faria a partir de uma ação, com uma pequena diferença: você não pode mais utilizar os métodos da `sfAction`. 214 215 você precisará utilizar as funções `get_partial()` e `get_component()` contidas no `PartialHelper` ao invés dos métodos `sfAction::getPartial()` e `sfAction::getComponent`. 216 216 217 217 Documentação adicional … … 220 220 O site do SwiftMailer é uma mina de ouro de [documentação](http://swiftmailer.org/wikidocs/#the_connections "Documentação do SwiftMailer") e [tutoriais](http://swiftmailer.org/wikidocs/#tutorials "Tutoriais do SwiftMailer"). 221 221 222 E, é claro, o [guia de referencia completo da API](http://www.swiftmailer.org/api/php5/index.html) também está disponível, caso voc eprecise.222 E, é claro, o [guia de referencia completo da API](http://www.swiftmailer.org/api/php5/index.html) também está disponível, caso você precise.