邮件程序在切换电子邮件后停止工作
Mailer stopped working after switching emails
几周前,我创建了一个邮件程序对象,以便在创建新 "Thing" 时发送电子邮件。很顺利,不过后来我把相关的几行注释掉了,一时没处理。今天我又试了一次,没有任何反应。我发现我使用的电子邮件帐户由于某种原因已断开连接,所以我尝试使用另一个电子邮件帐户。依然没有。有没有人猜到为什么它可能什么都不做,或者我如何调试它?我确定 username/password/domain 是准确的。
config/environments/development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'gmail.com',
user_name: 'username',
password: 'password',
authentication: 'plain',
enable_starttls_auto: true
}
app/mailers/user_mailer.rb
class UserMailer < ActionMailer::Base
default from: 'username@gmail.com'
def notify(user)
@user = user
mail(to: @user.email,subject: "Notification")
end
end
app/views/user_mailer/notify.html.erb
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1>Heading</h1>
<p>First paragraph</p>
<p>Second paragraph</p>
</body>
</html>
app/controllers/users_controller.rb
def create
#...
UserMailer.notify(@user).deliver
end
如果您在开发环境中进行测试,请添加以下行并检查
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
试试这个:
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { host:'localhost', port: '3000' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'localhost:3000',
user_name: 'username@gmail.com',
password: 'password',
authentication: 'plain',
enable_starttls_auto: true
}
几周前,我创建了一个邮件程序对象,以便在创建新 "Thing" 时发送电子邮件。很顺利,不过后来我把相关的几行注释掉了,一时没处理。今天我又试了一次,没有任何反应。我发现我使用的电子邮件帐户由于某种原因已断开连接,所以我尝试使用另一个电子邮件帐户。依然没有。有没有人猜到为什么它可能什么都不做,或者我如何调试它?我确定 username/password/domain 是准确的。
config/environments/development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'gmail.com',
user_name: 'username',
password: 'password',
authentication: 'plain',
enable_starttls_auto: true
}
app/mailers/user_mailer.rb
class UserMailer < ActionMailer::Base
default from: 'username@gmail.com'
def notify(user)
@user = user
mail(to: @user.email,subject: "Notification")
end
end
app/views/user_mailer/notify.html.erb
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1>Heading</h1>
<p>First paragraph</p>
<p>Second paragraph</p>
</body>
</html>
app/controllers/users_controller.rb
def create
#...
UserMailer.notify(@user).deliver
end
如果您在开发环境中进行测试,请添加以下行并检查
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
试试这个:
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { host:'localhost', port: '3000' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'localhost:3000',
user_name: 'username@gmail.com',
password: 'password',
authentication: 'plain',
enable_starttls_auto: true
}