尝试发送电子邮件时出现错误。不知道为什么,但是这是我的控制器和邮件中的代码
这是我下面的控制器代码
class Invitation::InvitesController < ApplicationController
def invite_provider
@patient = Patient.find_by_id(invite_params[:invitable_id])
recipient = params[:email]
InviteMailer.provider_invite(recipient).deliver_now
flash[:success] = "An email has been sent to"
redirect_back(fallback_location: root_path)
end
end
这是我的邮递区号
class InviteMailer < ApplicationMailer
def provider_invite(recipient)
@recipient = recipient
mail(
to: recipient[:email],
subject: I18n.t('provider_invite_subject')
)
end
end
答案 0 :(得分:1)
在致电mail
时,在to
选项中,您基本上是在发送params[:email][:email]
。我认为那不是你想要的。
recipient = params[:email]
然后
to: recipient[:email],
答案 1 :(得分:0)
您已经致电InviteMailer.provider_invite(recipient)
,其中收件人是控制器内的email
。
您可以更改控制器,
InviteMailer.provider_invite(email: recipient)
然后
class InviteMailer < ApplicationMailer
def provider_invite(attr)
@recipient = attr[:email]
mail(
to: @recipient,
subject: I18n.t('provider_invite_subject')
)
end
end
错误是由于您的参数o没有电子邮件密钥,因此收件人没有通过控制器传递