我有联系我们的表格,我在 localhost 的开发环境中工作,用户填写姓名、电子邮件和消息,然后单击发送消息按钮,然后我收到一封电子邮件。
我使用实现了解决方案
红宝石 v 2.4.1
导轨 v 5.1.4
邮件表格
我按照以下链接 https://gist.github.com/stevecondylios/e819a296167a31578d82fac881963789上的步骤进行操作
在此功能适用于某些电子邮件并且现在根本不起作用之前,我没有收到错误消息,并且在 mailgun 的电子邮件提供商中没有显示日志
这是我得到的最后一个日志
Processing by HomepageController#create as JS
Parameters: {"utf8"=>"✓", "homepage"=>{"name"=>"AMER Y BEARAT", "email"=>"bearatamer@gmail.com", "message"=>"klkllkklk", "nickname"=>""}, "commit"=>"Send Message"}
--->>> 1 create contact
--->>> 2 create contact
Test: {
"name": "AMER Y BEARAT",
"email": "bearatamer@gmail.com",
"message": "klkllkklk",
"nickname": ""
}
--->>> 3 create contact
--->>> 4 create contact
Started POST "/homepage" for ::1 at 2021-03-07 11:42:32 -0700
Processing by HomepageController#create as JS
Parameters: {"utf8"=>"✓", "homepage"=>{"name"=>"AMER Y BEARAT", "email"=>"bearatamer@gmail.com", "message"=>"klkllkklk", "nickname"=>""}, "commit"=>"Send Message"}
--->>> 1 create contact
--->>> 2 create contact
Test: {
"name": "AMER Y BEARAT",
"email": "bearatamer@gmail.com",
"message": "klkllkklk",
"nickname": ""
}
--->>> 3 create contact
--->>> 4 create contact
\logs 来自这个控制器 homepage_controller.rb 文件
应用程序/控制器/homepage_controller.rb
class HomepageController < ApplicationController
def index
@contact = Homepage.new(params[:homepage])
end
def create
puts "--->>> 1 create contact"
@contact = Homepage.new(params[:homepage])
puts "--->>> 2 create contact"
puts "Test: " + JSON.pretty_generate(JSON.parse(@contact.to_json))
@contact.request = request
puts "--->>> 3 create contact"
respond_to do |format|
puts "--->>> 4 create contact"
if @contact.deliver
puts "--->>> Pass create contact"
# re-initialize Home object for cleared form
@contact = Homepage.new
format.html { render 'index'}
format.js { flash.now[:success] = @message = "Thank you for your message. I'll get back to you soon!" }
else
puts "--->>> Fails create contact"
format.html { render 'index' }
format.js { flash.now[:error] = @message = "Message did not send." }
end
end
end
end
这是部分视图 app/views/homepage/_contact_form.html.erb
<%= form_for @contact, url: homepage_index_path, remote: true do |f| %>
<div class="contact-form-container">
<div>
<%= f.label :name %></br>
<%= f.text_field :name, required: true, class: "contact-form-text-area" %>
</div>
<div>
<%= f.label :email %></br>
<%= f.text_field :email, required: true, class: "contact-form-text-area" %>
</div>
<div>
<%= f.label :message %></br>
<%= f.text_area :message, rows: 8, cols: 40, required: true, class: "contact-form-text-area",
placeholder: "Send us a message"%>
</div>
<div class= "hidden">
<%= f.label :nickname %>
<%= f.text_field :nickname, :hint => 'Leave this field blank!' %>
</div>
<div class="btn-send-message">
<%= f.submit 'Send Message', class: 'btn btn-send-message-primary' , remote: true %>
</div>
</div>
<% end %>
<div class="col-md-6" id="flash-message">
<%= render 'flash' %>
</div>
这是 create.js.erb 文件 app/views/homepage/create.js.erb
// Test for ajax success
console.log("This is the create.js.erb file");
// Render flash message
$('#contact').html("<%= j render 'contact_form' %>");
$('#flash-message').html("<%= j render 'flash' %>").delay(3000).fadeOut(4000);
这是 development.rb 文件 config/environments/development.rb
config.action_mailer.perform_deliveries = true
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.default :charset => "utf-8"
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.mailgun.org',
port: 587,
domain: '********.com',
enable_starttls_auto: true,
authentication: 'plain',
user_name: 'postmaster@********.com',
password: '***************************'
}
config.action_mailer.raise_delivery_errors = true
注意:应用程序中的其他电子邮件工作正常,所以我不认为这是 mailgun 配置问题