我正在准确地关注paid tutorial并设置一个联系页面,当访问者填写表单并提交时,我,网站所有者,收到一封包含他们姓名,电子邮件和评论的电子邮件。目标是让我轻松点击回复并回复它们。
这对我来说似乎很奇怪,因为很奇怪ActionMailer让你能够从别人的电子邮件帐户发送,而这些帐户没有定义任何SMTP设置。实际上,按照本教程,我不需要声明任何SMTP设置。
但它不起作用...会喜欢一些故障排除帮助。
我的邮件代码:
class UserMailer < ActionMailer::Base
def contact_email(contact)
@contact = contact
mail(to: jdong8@gmail.com, from: @contact.email, :subject => "New message at JamesDong.com")
end
端
控制器代码段:
def create
@contact= Contact.new(secure_params)
if @contact.save
UserMailer.contact_email(@contact).deliver
答案 0 :(得分:1)
你可以克隆git repo https://github.com/RailsApps/learn-rails 从书Learn Ruby on Rails获取代码。您将看到代码按实现方式工作。
如果查看示例代码,则会在文件config / environments / development.rb和config / environments / production.rb中配置SMTP设置。
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: "example.com",
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}
GMAIL_USERNAME和GMAIL_PASSWORD设置邮件的SMTP来源。
UserMailer
代码仅创建(部分)电子邮件的标题和正文。将显示“from”和“to”,仅供外观使用。查看原始电子邮件消息,您将看到完整的标题集,显示电子邮件的真实来源。
因此,简而言之,UserMailer
代码设置了一个虚假的“from”,并且当从Gmail帐户发送电子邮件时设置了真正的“from”。
答案 1 :(得分:0)
我可能在这里错了,但根据我在Rails中的经验,这是不可能的,您需要为要发送邮件的帐户设置SMTP设置。
这里有很多问题指的是正确设置ActionMailer,但似乎你试图发送邮件而不告诉它从哪里发送邮件。
如果这是你的问题,这个问题和最佳答案可能会有所帮助: