Development

Changeset 10071

You must first sign up to be able to contribute.

Changeset 10071

Show
Ignore:
Timestamp:
07/02/08 17:09:34 (3 months ago)
Author:
domluc
Message:

Update with fixs by Vitor Mello

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • doc/branches/1.1/cookbook/pt/email.txt

    r9587 r10071  
    99O Swift Mailer é uma poderosa biblioteca PHP5 totalmente orientada a objetos, que irá satisfazer 120% das suas necessidades de email. 
    1010 
    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. É voce quem decide se quer atualizar para uma versão mais nova. 
    12  
    13 A forma de enviar emails pelo symfony é muito simples. Voce cria um partial ou um componente que irá manipular o conteúdo do email, e usar o Swift para enviá-lo de uma forma bastante flexível. 
     11Ela 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 
     13A 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. 
    1414 
    1515Instalando 
    1616---------- 
    1717 
    18 Se o seu projeto já estiver usando SVN, voce pode instalá-lo usando o comando `svn:externals`: 
     18Se o seu projeto já estiver usando SVN, você pode instalá-lo usando o comando `svn:externals`: 
    1919 
    2020    $ cd /path/to/symfony/project 
     
    2626    swift http://swiftmailer.svn.sourceforge.net/svnroot/swiftmailer/tags/php5/3.3.3/lib/ 
    2727 
    28 Se o seu projeto não estiver usando SVN, voce ainda pode baixá-lo pelo subversion usando os seguintes comandos: 
     28Se o seu projeto não estiver usando SVN, você ainda pode baixá-lo pelo subversion usando os seguintes comandos: 
    2929 
    3030    $ cd /path/to/symfony/project 
     
    3939Não há configuração específica de email. 
    4040 
    41 Para manter o seu projeto flexível, voce 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 voce 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. 
     41Para 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. 
    4242 
    4343 
     
    4545---------------- 
    4646 
    47 A partir do symfony 1.1, voce pode pegar facilmente o conteudo de partials ou componentes a partir de uma ação:   
     47A partir do symfony 1.1, você pode pegar facilmente o conteudo de partials ou componentes a partir de uma ação:   
    4848 
    4949    [php] 
     
    109109------------------------------------------ 
    110110 
    111 Quando voce instancia a classe Swift, voce pode utilizar diferentes objetos do tipo Swift_Connection. 
     111Quando você instancia a classe Swift, você pode utilizar diferentes objetos do tipo Swift_Connection. 
    112112 
    113113  * **Swift_Connection_NativeMail** é o driver de conexão que irá utilizar a funcão `mail`, nativa do PHP. 
    114114 
    115   * **Swift_Connection_SMTP** envia os emails através de um servidor SMTP. O construtor pede tres 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: 
    116116 
    117117        [php] 
     
    120120    Veremos daqui a pouco como usar este driver para enviar emails através de um servidor SMTP seguro, como o Gmail, por exemplo. 
    121121 
    122   * **Swift_Connection_Sendmail** utiliza o binário sendmail para o envio de emails. Voce 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 instancias 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 voce 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"). 
     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"). 
    127127 
    128128Usando os servidores SMTP do Gmail 
     
    131131Por que alguém iria querer usar uma conta do gmail para enviar emails? 
    132132 
    133   * Voce não precisará configurar e administrar um servidor SMTP 
     133  * Você não precisará configurar e administrar um servidor SMTP 
    134134  * Seus emails não serão vistos como spam pelos usuários do hotmail (ou similares) 
    135   * Voce ganha 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` 
    136136 
    137137Quais são as limitações? 
    138138 
    139   * Voce necessita de uma conta no gmail (é de graça!) 
     139  * Você necessita de uma conta no gmail (é de graça!) 
    140140  * As negociações entre SMTP e SSL demoram um pouco mais do que usar apenas SMTP. 
    141   * Voce não pode enviar emails a partir de um email aleatório (mas voce pode 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) 
    142142 
    143143Veja como configurar um objeto do Swift: 
     
    145145    [php] 
    146146    $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'); 
    149149      
    150150    $mailer = new Swift($connection); 
     
    153153----------------- 
    154154 
    155 Para embutir imagens no seu email, voce precisar gerar algumas URLs a partir dos objetos anexados antes de exibir seu conteudo. Veja um exemplo de como fazer isto: 
     155Para 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: 
    156156 
    157157    [php] 
     
    180180    $mailer->disconnect(); 
    181181 
    182 No seu partial/componente voce pode incluir facilmente as imagens embutidas da seguinte maneira: 
     182No seu partial/componente você pode incluir facilmente as imagens embutidas da seguinte maneira: 
    183183 
    184184    <img src="<?php echo $images['symfony']; ?>" alt="Symfony Project" /> 
     
    190190------ 
    191191 
    192 Felizmente, anexar um arquivo a um email é tão simples quanto gostaríamos que fosse: 
     192Felizmente, anexar um arquivo a um email é tão simples quanto esperaríamos que fosse: 
    193193 
    194194    [php] 
     
    198198----------------------- 
    199199 
    200 Na maioria da vezes, voce pode querer enviar o mesmo email para mais de uma pessoa, ou mesmo incluir outras pessoas como cópias carbono. Voce pode fazer isso facilmente usando a classe `Swift_RecipientList`. 
     200Na 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`. 
    201201 
    202202    [php] 
     
    206206    $destinatarios->addBcc($bcc); 
    207207 
    208 Se voce estiver enviando emails em um loop, não se esqueça de usar o método `->flush()` na sua lista de $destinatarios, ou voce vai ter um trabalhão pra explicar porque alguém recebeu 500 cópias de uma newsletter. 
     208Se 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. 
    209209 
    210210Enviando emails a partir de uma tarefa (task) 
    211211--------------------------------------------- 
    212212 
    213 O processo é exatamente igual à maneira como voce faria a partir de uma ação, com uma pequena diferença: Voce não pode mais utilizar os métodos da `sfAction`. 
    214  
    215 Voce precisará utilizar as funções `get_partial()` e `get_component()` contidas no `PartialHelper` ao invés dos métodos `sfAction::getPartial()` e `sfAction::getComponent`. 
     213O 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 
     215você precisará utilizar as funções `get_partial()` e `get_component()` contidas no `PartialHelper` ao invés dos métodos `sfAction::getPartial()` e `sfAction::getComponent`. 
    216216 
    217217Documentação adicional 
     
    220220O 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"). 
    221221 
    222 E, é claro, o [guia de referencia completo da API](http://www.swiftmailer.org/api/php5/index.html) também está disponível, caso voce precise. 
     222E, é claro, o [guia de referencia completo da API](http://www.swiftmailer.org/api/php5/index.html) também está disponível, caso você precise.