Rails 5.2 Net::SMTPAuthenticationError - 535 身份验证失败:发送电子邮件时禁用帐户(Localhost 和 Heroku)
Rails 5.2 Net::SMTPAuthenticationError - 535 Authentication failed: account disabled When Sending Email (Localhost and Heroku)
我正在尝试让 Rails 5.2 邮件程序正常工作,但在 localhost
和我的 Heroku production
环境中都遇到了 Net::SMTPAuthenticationError - 535 Authentication failed: account disabled
错误。
邮件看起来像这样:
class AdminNotificationsMailer < ApplicationMailer
default from: "liz@linchpinindustries.com"
def new_rfp(rfp)
@rfp = rfp
mail(
:to => "liz@linchpinindustries.com",
:subject => 'New RFP Alert!'
)
end
def new_contact_us(contact)
@contact = contact
mail(
to: "liz@linchpinindustries.com",
subject: 'New Contact Us Submission on LPI'
)
end
end
在我的rfp#create action
中使用触发器(对于第一个邮件程序,new_rfp
):
def create
@rfp = Rfp.new(rfp_params)
respond_to do |format|
if @rfp.save!
AdminNotificationsMailer.new_rfp(@rfp).deliver
format.html { redirect_to root_path, notice: "Thanks for your request! We'll get back to you ASAP. Stay tuned!" }
format.json { render :show, status: :created, location: @rfp }
else
format.html { render :new }
format.json { render json: @rfp.errors, status: :unprocessable_entity }
end
end
end
我已经配置了 Sendgrid,并使用 puts
仔细检查了我的用户名和密码(在本地主机和生产环境中都是正确的)。
我的 environment.rb
中有以下内容:
ActionMailer::Base.smtp_settings = {
:user_name => ENV["SENDGRID_USERNAME"],
:password => ENV["SENDGRID_PASSWORD"],
:domain => 'linchpinindustries.com',
:address => 'smtp.sendgrid.net',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
我已经查阅了 this and 之类的帖子,但没有任何效果。
我正式被难住了。谁能看出为什么会出现此错误?
您的设置中的所有内容看起来都是正确的,所以这不只是
这么简单
Net::SMTPAuthenticationError - 535 Authentication failed: account disabled
您的帐户出于某种原因disabled
。与 Sendgrid 检查您的帐户是否已启动并且 运行 正确。
你能测试一下这个配置吗?它正在处理我的项目。
ActionMailer::Base.smtp_settings = {
:address => "smtp.sendgrid.net",
:port => 465,
:domain => "vibol.xyz",
:ssl => true,
:enable_starttls_auto => true,
:authentication => :login,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD']
}
我收到了类似的错误消息,问题是我在我的 sendgrid 上打开了 2FA 身份验证,但没有意识到我在这样做时必须在应用程序中更新我的配置。
现在,您必须提供 username = "apikey"
而不是自定义用户名和密码,密码是您的 api 密钥
ActionMailer::Base.smtp_settings = {
domain: 'YOUR_DOMAIN.COM',
address: "smtp.sendgrid.net",
port: 587,
authentication: :plain,
user_name: 'apikey',
password: ENV['SENDGRID_API_KEY']
}
我正在尝试让 Rails 5.2 邮件程序正常工作,但在 localhost
和我的 Heroku production
环境中都遇到了 Net::SMTPAuthenticationError - 535 Authentication failed: account disabled
错误。
邮件看起来像这样:
class AdminNotificationsMailer < ApplicationMailer
default from: "liz@linchpinindustries.com"
def new_rfp(rfp)
@rfp = rfp
mail(
:to => "liz@linchpinindustries.com",
:subject => 'New RFP Alert!'
)
end
def new_contact_us(contact)
@contact = contact
mail(
to: "liz@linchpinindustries.com",
subject: 'New Contact Us Submission on LPI'
)
end
end
在我的rfp#create action
中使用触发器(对于第一个邮件程序,new_rfp
):
def create
@rfp = Rfp.new(rfp_params)
respond_to do |format|
if @rfp.save!
AdminNotificationsMailer.new_rfp(@rfp).deliver
format.html { redirect_to root_path, notice: "Thanks for your request! We'll get back to you ASAP. Stay tuned!" }
format.json { render :show, status: :created, location: @rfp }
else
format.html { render :new }
format.json { render json: @rfp.errors, status: :unprocessable_entity }
end
end
end
我已经配置了 Sendgrid,并使用 puts
仔细检查了我的用户名和密码(在本地主机和生产环境中都是正确的)。
我的 environment.rb
中有以下内容:
ActionMailer::Base.smtp_settings = {
:user_name => ENV["SENDGRID_USERNAME"],
:password => ENV["SENDGRID_PASSWORD"],
:domain => 'linchpinindustries.com',
:address => 'smtp.sendgrid.net',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
我已经查阅了 this and
我正式被难住了。谁能看出为什么会出现此错误?
您的设置中的所有内容看起来都是正确的,所以这不只是
这么简单Net::SMTPAuthenticationError - 535 Authentication failed: account disabled
您的帐户出于某种原因disabled
。与 Sendgrid 检查您的帐户是否已启动并且 运行 正确。
你能测试一下这个配置吗?它正在处理我的项目。
ActionMailer::Base.smtp_settings = {
:address => "smtp.sendgrid.net",
:port => 465,
:domain => "vibol.xyz",
:ssl => true,
:enable_starttls_auto => true,
:authentication => :login,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD']
}
我收到了类似的错误消息,问题是我在我的 sendgrid 上打开了 2FA 身份验证,但没有意识到我在这样做时必须在应用程序中更新我的配置。
现在,您必须提供 username = "apikey"
而不是自定义用户名和密码,密码是您的 api 密钥
ActionMailer::Base.smtp_settings = {
domain: 'YOUR_DOMAIN.COM',
address: "smtp.sendgrid.net",
port: 587,
authentication: :plain,
user_name: 'apikey',
password: ENV['SENDGRID_API_KEY']
}