Ruby on rails Rails actionmailer,gmail工作,office 365不工作。
我让Actionmailer使用gmail发送电子邮件,设置如下:Ruby on rails Rails actionmailer,gmail工作,office 365不工作。,ruby-on-rails,actionmailer,office365,Ruby On Rails,Actionmailer,Office365,我让Actionmailer使用gmail发送电子邮件,设置如下: ActionMailer::Base.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => "gmail.com", :user_name => "user_name@gmail.com", :password => "password", :authentication
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "user_name@gmail.com",
:password => "password",
:authentication => "plain",
:enable_starttls_auto => true
}
ActionMailer::Base.smtp_settings = {
:address => "smtp.office365.com",
:port => 587,
:domain => "my_domain.com",
:user_name => "username@my_domain.onmicrosoft.com",
:password => "password",
:authentication => :login,
:enable_starttls_auto => true
}
但是,我无法使office 365 mail正常工作,我有以下设置:
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "user_name@gmail.com",
:password => "password",
:authentication => "plain",
:enable_starttls_auto => true
}
ActionMailer::Base.smtp_settings = {
:address => "smtp.office365.com",
:port => 587,
:domain => "my_domain.com",
:user_name => "username@my_domain.onmicrosoft.com",
:password => "password",
:authentication => :login,
:enable_starttls_auto => true
}
如果我尝试与此客户发送电子邮件,我会得到:
Net::SMTPFatalError
550 5.7.1 Client does not have permissions to send as this sender
结果表明,microsoft对
smtp\u设置和emailer.rb中的from
字段都要求相同的电子邮件,请阅读有关通过Office 365使用smtp发送的详细信息:
使用这样的身份验证方法,您不需要在designe.rb
中设置:domain.,我将设置为“no reply@*********.com”
,并且我在smtp设置中提到了production.rb
将designe.rb
中的电子邮件id替换为“no reply@*********.com”
后,它现在工作正常 我曾经在Gmail和Office365上遇到过同样的问题,在绞尽脑汁数小时后,我找到了解决办法
如果您使用Office365帐户发送电子邮件,则仅当用户名
和发件人地址
和相同值时,该帐户才有效。i、 e
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.office365.com',
port: 587,
domain: 'my_domain.pk',
user_name: 'noreply@my_domain.pk',
password: ENV['PASSWORD'],
authentication: 'login',
enable_starttls_auto: true
}
config.middleware.use ExceptionNotification::Rack,
email: {
deliver_with: :deliver,
email_prefix: '[Email Prefix]',
sender_address: %{<noreply@my_domain.pk>},
exception_recipients: %w{abc@gmail.com}
}
config.action_mailer.perform_deliveries = true
config.action\u mailer.delivery\u method=:smtp
config.action\u mailer.smtp\u设置={
地址:'smtp.office365.com',
港口:587,
域:'my_domain.pk',
用户名:'noreply@my_domain.pk',
密码:ENV['password'],
身份验证:“登录”,
启用\u starttls\u自动:真
}
config.middleware.use ExceptionNotification::Rack,
电邮:{
交付,交付,
电子邮件前缀:“[电子邮件前缀]”,
发件人地址:%{},
例外情况\u收件人:%w{abc@gmail.com}
}
config.action\u mailer.perform\u deliveries=true
关键点:所以保持以下值不变对我来说很有效
用户名:'noreply@my_domain.pk'
发件人地址:%{}
您好,您能解决这个问题吗?我也有同样的问题。谢谢您好,我发现这是一个内部IT问题,我的代码没有任何问题-他们只是没有正确设置权限。对上述答案有任何参考吗?我从in-app/mailers/application_mailer.rb更改了,就这样做了。和往常一样,在测试时不要忘记重置rails服务器!