Enviando e-mail de contato no Radiant

16Apr09

Depois de muito apanhar consegui configurar a página do oxenterails.com para enviar e-mails por meio do gmail.

Para tal tive que fugir da configuração padrão de mailer do radiant, pois não consegui fazer a configuração utilizando o plugin da radiant (http://github.com/radiant/radiant-mailer-extension/tree/master).

Primeiramente instalei o fork do plugin do ntalbott:

git clone git://github.com/ntalbott/radiant-mailer-extension.git \
          vendor/extensions/mailer

Para enviar emails por meio do gmail é necessário instalar o plugin action_mailer_optional_tls. O problema que encontrei é que não existe script/plugin para aplicativos radiant. Então rodei o seguinte comando:

svn export http://svn.douglasfshearer.com/rails/plugins/action_mailer_optional_tls/ \
           vendor/plugins/action_mailer_optional_tls

Como indicado em http://wiki.github.com/radiant/radiant/mailer-extension, após a linha ResponseCache.defaults[:logger] inseri o seguinte código de setup do ActionMailer:

ActionMailer::Base.smtp_settings = {
  :tls => true,
  :address => "smtp.gmail.com",
  :port   => 587,
  :domain => "mailerserver.com.br",
  :username => "maileruser@mailerserver.com.br",
  :password => "mailerserverpassword",
  :authentication => :plain
}
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.perform_deliveries = true

O body do mailer ficou no seguinte padrão:

<r:mailer:form name="contact">
  <fieldset>
    <legend>Contato</legend>
    <r:error on="name">
      <span class="error">Nome é necessário!</span><br />
    </r:error>
    <label for="name">Nome:</label>
    <r:text name="name" required="true" /><br />

    <r:error on="email">
      <span class="error">E-mail é necessário!</span><br />
    </r:error>
    <label for="email">E-mail:</label>
    <r:text name="email" required="true" /><br />

    <label for="message">Mensagem</label><br />
    <r:error on="message">
      <span class="error">Por favor digite uma mensagem!</span><br/>
    </r:error>
    <r:textarea name="message" required="true" /><br /><br />

    <input type="submit" value="Enviar!" />
  </fieldset>
</r:mailer:form>

O yml do mailer ficou no seguinte padrão:

subject: Contato
from_field: email
redirect_to: /contact/thank-you/
recipients:
   - contact@mailerserver.com.br

Atente para o detalhe do redirect_to, criei uma página para retorno.

E o email ficou configurado segundo o padrão:

Olá,
<r:mailer:get name="name"/> (<r:mailer:get name="email"/>):
<r:mailer:get name="message"/>

Com estas configurações consegui fazer o mailer funcionar. 🙂

PS: desculpem pela demora nos posts, tempo é algo muito raro…

Advertisements


No Responses Yet to “Enviando e-mail de contato no Radiant”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: