2017-06-14 145 views
0

我试图使用SMTP方法,其CONFIGRATION我在development.rb文件来完成,这是使用邮件宝石和SMTP传递方法轨发送邮件

Rails.application.configure do 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.delivery_method = :smtp 
     config.action_mailer.smtp_settings = { 
     address:    'smtp.gmail.com', 
     port:     587, 
     domain:    'example.com', 
     user_name:   '[email protected]', 
     password:    xxxxxxxx, 
     authentication:  'plain', 
     enable_starttls_auto: true 
    } 

这里是UserMailer发送邮件这是邮件程序文件夹下目前,这里我收到来自控制器和参数的参数值被分配给一个varible,因此,它可以是提供给视图 UserMailer.rb

class UserMailer < ApplicationMailer 
     default from: '[email protected]' 
     layout 'mailer' 
     def conference_result(email,proposal,acknowledgement,positive,negative,chart) 
      @email = email 
      @proposal = proposal 
      @acknowledgement = acknowledgement 
      @positive = positive 
      @negative = negative 
      @chart = chart 
      mail(to: @email , subject: 'Result for Your conference meeting' , content_type: "text/html") 
     end 
    end 

这里是我想在邮件中提供的内容, mailer.html.erb

<body> 
     <%= yield %> 
      <h3 class="text-center" id="proposalhead">Proposal</h3> 
      <div style="border:1px solid rgba(0,0,0,0.3);background-color: rgba(255,255,255,0.1);margin-top:10px;margin-bottom:10px;" class="text-center"> 
       <%= @proposal %> 
      </div> 
      <h3 class="text-center hidden" id ="acknowledgementhead">Acknowledgement</h3> 
      <div style="border:1px solid rgba(0,0,0,0.3);background-color: rgba(255,255,255,0.1);margin-top:20px;margin-bottom:20px;" id ="Acknowledgement" class="text-center"> 
       <%= @acknowledgement %> 
      </div> 
      <h3 class="text-center hidden" id ="positivehead">Positive</h3> 
      <div style="border:1px solid rgba(0,0,0,0.3);background-color: rgba(255,255,255,0.1);margin-top:10px;margin-bottom:10px;" id ="Positive" class="text-center"> 
       <%= @positive %> 
      </div> 
      <h3 class="text-center hidden" id ="negativehead">Negative</h3> 
      <div style="border:1px solid rgba(0,0,0,0.3);background-color: rgba(255,255,255,0.1);margin-top:10px;margin-bottom:20px" id = "Negative" class="text-center"> 
       <%= @negative %> 
      </div> 
      <div id="chart_div" style="width:100%;margin-bottom: 15px;margin-top:15px;" class="text-center"> 
       <%= @chart %> 
      </div>  
     </body> 

当我尝试发送邮件,它显示以下错误

ActionView :: MissingTemplate(缺少具有“邮件程序”的模板user_mailer/conference_result。搜查:* “user_mailer文件”)

请帮我,我是新来的红宝石。

+0

“user_mailer”forlder中是否有conference_result电子邮件模板? –

回答

3

如错误所述,缺少模板user_mailer/conference_result

你需要创建一个模板app/views/user_mailer/conference_result.html.erb

+0

感谢您的帮助,gmail正在发送邮件,但发送了邮件,Google只是阻止某人登录您的Google帐户。如何克服这一点。 –

+0

在这里登录您的帐户并启用访问不太安全的应用程序https://www.google.com/settings/security/lesssecureapps –

+0

谢谢,我已经完成了它。我发送的内容不是显示在一个适当的格式。我收到这样的邮件--- == _ mimepart_5940e1d369d8f_282d2658644331d6 Content-Type:text/plain; charset = UTF-8 Content-Transfer-Encoding:7bit ---- == _ mimepart_5940e1d369d8f_282d2658644331d6 Content-Type:text/html; charset = UTF-8 Content-Transfer-Encoding:引用可打印 –

0

看来你错过了邮件模板本身。如果你没有得到它,那就解释了错误 - 否则我会确保它在正确的文件夹中,可能是app/views/user_mailer/conference_result.html.erb.text.erb

+0

谢谢您的帮助.Gmail正在发送邮件,但邮件中包含Google,但Google只是阻止某人登录您的Google帐户。如何解决此问题 –

0
https://myaccount.google.com/u/0/lesssecureapps 

登录您的电子邮件,然后上面的链接打开。 启用较不安全的应用程序。