我在学习 Rails 教程“发送邮件”的第 20 章。有一个创建联系表格,并且应该将通知电子邮件发送到我的电子邮件地址。我已经按照本书设置了配置,并且在终端日志中正确生成了电子邮件。但是电子邮件从未发送到我的电子邮件收件箱。我收到内部服务器错误。详情见下文。
Completed 500 Internal Server Error in 30831ms
Net::OpenTimeout (execution expired):
app/controllers/contacts_controller.rb:10:in `create'
联系人控制器.rb
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(secure_params)
if @contact.valid?
UserMailer.contact_email(@contact).deliver_now
flash[:notice] = "Message sent from #{@contact.name}."
redirect_to root_path
else
render :new
end
end
private
def secure_params
params.require(:contact).permit(:name, :email, :content)
end
end
user_mailer.rb
class UserMailer < ApplicationMailer
default from: "do-not-reply@example.com"
def contact_email(contact)
@contact = contact
mail(to: Rails.application.secrets.owner_email, from: @contact.email, :subject => "Website Contact")
end
end
我还在 config/secrets.yml 文件中设置了我的电子邮件地址,如下所示:
owner_email: <%= ENV["my_email_address@*******.com"] %>
根据本书关于配置的早期讨论,我还在我的 .bashrc 文件中添加了以下内容:
export SENDGRID_USERNAME="user_name"
export SENDGRID_PASSWORD="password"
export MAILCHIMP_API_KEY="long_random_api_key_here"
export MAILCHIMP_LIST_ID="list_id_here"
export OWNER_EMAIL="**********@*********.com"
据我所知,我已经按照教程设置了所有内容,但邮件没有发送。任何想法为什么?