2014-10-01 31 views
4

我已經得到的ActionMailer使用Gmail以下設置發送電子郵件:Rails actionmailer,gmail工作,office 365不。

ActionMailer::Base.smtp_settings = { 
    :address => "smtp.gmail.com", 
    :port => 587, 
    :domain => "gmail.com", 
    :user_name => "[email protected]", 
    :password => "password", 
    :authentication => "plain", 
    :enable_starttls_auto => true 
} 

但是,我不能讓辦公室365郵箱的工作,我有以下設置:

ActionMailer::Base.smtp_settings = { 
    :address => "smtp.office365.com", 
    :port => 587, 
    :domain => "my_domain.com", 
    :user_name => "[email protected]_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 
+0

嗨,你能解決這個問題呢?我有同樣的問題。謝謝! – Fever 2015-10-06 23:17:45

+0

嗨,我發現這是一個內部的IT問題,沒有什麼是我的代碼錯了 - 他們只是沒有正確設置權限。 – Darkstarone 2015-10-06 23:24:28

回答

4

原來,微軟需要爲smtp_settings和兩個相同的電子郵件字段emailer.rb

+0

對上述答案有什麼參考? – Aamir 2016-09-29 11:38:57

1

我在面對與Gmail和Office365相同的問題後,在摸索了好幾個小時後,我找到了解決方案。

如果您正在使用Office365帳戶發送電子郵件,則僅適用於user_namesender_address以及相同的值。即

config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    address:    'smtp.office365.com', 
    port:     587, 
    domain:    'my_domain.pk', 
    user_name:   '[email protected]_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:  %{<[email protected]_domain.pk>}, 
    exception_recipients: %w{[email protected]} 
    } 

config.action_mailer.perform_deliveries = true 

要點:因此保持以下值相同的工作對我來說

user_name: '[email protected]_domain.pk' 

sender_address: %{<[email protected]_domain.pk>}