为什么信件不来电子邮件?ActionMailer
Why the letters do not come to the email?ActionMailer
我正在尝试在 rails 上配置本机邮件程序,当我尝试从本地服务器向 gmail 邮箱发送一封信件时,它不起作用。
[18] pry(main)> user = User.last
User Load (3.7ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User:0x00000007a25150
id: 1,
email: "test@gmail.com",
encrypted_password: "a$C2bkQfHAh4P6czCwuZdnn.bsnSM.tp8Rm7pHHn0S1MzAJ4ch.Jkea",
reset_password_token: nil,
reset_password_sent_at: nil,
remember_created_at: nil,
sign_in_count: 1,
current_sign_in_at: Wed, 25 Mar 2015 13:52:09 UTC +00:00,
last_sign_in_at: Wed, 25 Mar 2015 13:52:09 UTC +00:00,
current_sign_in_ip: #<IPAddr: IPv4:127.0.0.1/255.255.255.255>,
last_sign_in_ip: #<IPAddr: IPv4:127.0.0.1/255.255.255.255>,
created_at: Wed, 25 Mar 2015 13:52:09 UTC +00:00,
updated_at: Wed, 25 Mar 2015 13:52:09 UTC +00:00>
[19] pry(main)> UserMailer.invite_email(user)
UserMailer#invite_email: processed outbound mail in 153.3ms
=> #<ActionMailer::MessageDelivery:0x3d72244>
invite_email
方法
def invite_email(user)
@user = user
mail(to: @user.email, subject: 'Welcome to My Awesome Site')
end
和开发配置
config.action_mailer.delivery_method :smtp
config.action_mailer.smtp_settings = {
enable_starttls_auto: true,
address: 'smtp.gmail.com',
port: 587,
authentication: 'plain',
user_name: 'email@gmail.com',
password: 'pass'
}
我做错了什么?
您需要在 return 值上调用 deliver_now
或 deliver_later
(或在 rails 4.2、deliver
之前)才能实际发送电子邮件:
UserMailer.invite_email(user).deliver_now
我正在尝试在 rails 上配置本机邮件程序,当我尝试从本地服务器向 gmail 邮箱发送一封信件时,它不起作用。
[18] pry(main)> user = User.last
User Load (3.7ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User:0x00000007a25150
id: 1,
email: "test@gmail.com",
encrypted_password: "a$C2bkQfHAh4P6czCwuZdnn.bsnSM.tp8Rm7pHHn0S1MzAJ4ch.Jkea",
reset_password_token: nil,
reset_password_sent_at: nil,
remember_created_at: nil,
sign_in_count: 1,
current_sign_in_at: Wed, 25 Mar 2015 13:52:09 UTC +00:00,
last_sign_in_at: Wed, 25 Mar 2015 13:52:09 UTC +00:00,
current_sign_in_ip: #<IPAddr: IPv4:127.0.0.1/255.255.255.255>,
last_sign_in_ip: #<IPAddr: IPv4:127.0.0.1/255.255.255.255>,
created_at: Wed, 25 Mar 2015 13:52:09 UTC +00:00,
updated_at: Wed, 25 Mar 2015 13:52:09 UTC +00:00>
[19] pry(main)> UserMailer.invite_email(user)
UserMailer#invite_email: processed outbound mail in 153.3ms
=> #<ActionMailer::MessageDelivery:0x3d72244>
invite_email
方法
def invite_email(user)
@user = user
mail(to: @user.email, subject: 'Welcome to My Awesome Site')
end
和开发配置
config.action_mailer.delivery_method :smtp
config.action_mailer.smtp_settings = {
enable_starttls_auto: true,
address: 'smtp.gmail.com',
port: 587,
authentication: 'plain',
user_name: 'email@gmail.com',
password: 'pass'
}
我做错了什么?
您需要在 return 值上调用 deliver_now
或 deliver_later
(或在 rails 4.2、deliver
之前)才能实际发送电子邮件:
UserMailer.invite_email(user).deliver_now