简体   繁体   English

ActionMailer发送电子邮件但空体

[英]ActionMailer sending emails but with empty body

I don't know why, but e-mails sent by Rails Mailer using a Gmail account are being received with subject but with empty body... 我不知道为什么,但是Rails Mailer使用Gmail帐户发送的电子邮件正在收到主题,但是身体空洞......

Mailer: 梅勒:

class ContatoMailer < ActionMailer::Base
  default from: "contato@parceirobrf.com.br" 
  def send_email(user_info)
      @user_info = user_info   
       mail(
        to: "contato@parceirobrf.com.br",
        subject: "Contato - Parceiro BRF",
        from: "Parceiro BRF",  
        return_path: "contato@parceirobrf.com.br",
        date: Time.now,
        content_type: "text/html"
      )
    end
end

Controller 调节器

  def dispatch_email
  user_info = params[:user_info]
  if ContatoMailer.send_email(user_info).deliver
    flash[:notice] = "Mensagem enviada."
  else
    flash[:notice] = "Oops. Sua mensagem não pôde ser enviada."
  end
  redirect_to "/contato"
end

Contact form: 联系表:

<%= form_tag dispatch_email_path, method: :post do %>
        <dt>E-mail:</dt>
        <dd><%= usuario_atual.email%></dd>
        <%= hidden_field_tag "user_info[email]", usuario_atual.email  %><br />
        <dt>Nome:</dt>
        <dd><%= usuario_atual.nomefantasia%></dd>
        <%= hidden_field_tag "user_info[name]", usuario_atual.nomefantasia  %><br />            
        <dt>Fone Contato:</dt>
        <dd><%= usuario_atual.fone1_prop%></dd>
    </dl>
    <label for="lbl-txt">Mensagem:</label>
    <div class="area">
        <%= text_area_tag "user_info[message]", "", size: "60x10" %>
    </div><!-- / area -->
    <div class="btn-row">
        <%= submit_tag "Enviar" , :class => 'btn'%>
    </div>
    <% end %>

Message Template - mensagem.html.erb 消息模板 - mensagem.html.erb

<p>Nome: <%= @user_info["name"] %></p>
<p>Email: <%= @user_info["email"] %></p>
<p>Mensagem: <%= @user_info["message"] %></p>

Thanks! 谢谢!

try add some params to mail function: 尝试添加一些params到mail功能:

   mail(
    to: "contato@parceirobrf.com.br",
    subject: "Contato - Parceiro BRF",
    from: "Parceiro BRF",  
    return_path: "contato@parceirobrf.com.br",
    date: Time.now,
    content_type: "text/html",
    template_path: 'contato_mailer', # folder in views where are mail templates
                                     # by default its snakifyed controller name           
    template_name: 'mensagem'        # name of template 
                                     # by default its snakifyed action name
  )   

mensagem.html.erb should be in my_app/app/views/contato_mailer/ mensagem.html.erb应该在my_app/app/views/contato_mailer/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM