Ruby on rails Rails actionmailer,gmail工作,office 365不工作。

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使用gmail发送电子邮件,设置如下:

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服务器!