2013-11-15 2 views
0

У меня есть приложение Rails, которое использует форму для сбора информации о сообщении и отправляет сообщение в мою учетную запись gmail/yahoo.Action Mailer error: 535-5.7.8 Имя пользователя и пароль не принимается

Я добавил это setup_mail.rb в конфигурации/инициализаторах:

ActionMailer::Base.smtp_settings = { 
     :address    => "smtp.gmail.com", 
     :port     => 587, 
     :user_name   => "my_user", 
     :password    => "my_pass", 
     :authentication  => "plain", 
     :enable_starttls_auto => true 
    } 

и использовать контроллер как и для маршрута POST:

def create 
    @message = Message.new(params[:message]) 

    if @message.valid? 
     NotificationsMailer.new_message(@message).deliver! 
     redirect_to(root_path, :notice => "Message was successfully sent.") 
    else 
     flash.now.alert = "Please fill all fields." 
     redirect_to('#') 
    end 
end 

параметры сообщения принимаются от формы точно так же:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"4xgV0umvaTPzYxd18qdJq/GT7QCdXjrPTGR7D9R3AC4=", "message"=>{"name"=>"Deepak", "email"=>"[email protected]", "subject"=>"Hi", "body"=>"Hi"}, "commit"=>"Send"} 

Независимо от того, пользуюсь ли я учетными данными Yahoo или учетными данными Gmail в th e, я получаю то же сообщение об ошибке. Я прокомментировал все настройки в ActionMailer :: Base.smtp_settings и все еще получаю эту проблему. Это заставляет меня думать, что проблема может быть связана с чем-то другим вне этого кода, но я понятия не имею.

-Deepak

+0

Вы разрешили внешние подключения для отправки писем в настройках вашей учетной записи Google? – okliv

+0

Я не вижу настройки исходящей почты. Я включил параметры IMAP в gmail, но все равно ту же ошибку. Это верно? Как исходящие, так и входящие письма отправляются из моего идентификатора gmail. – user2738707

+1

, когда у меня была такая же проблема, и я вошел в почту Google, я увидел строку уведомлений в верхней части страницы, которую кто-то хочет отправить по электронной почте из моей учетной записи извне. и была кнопка - чтобы разрешить это действие (или что-то в этом роде) также, проверьте, заканчивается ли имя пользователя с '@ gmail.com' – okliv

ответ

0

Вы упоминаете ваш код в config/initializers - мы имеем ActionMailer работу, и он посылает через Gmail, за исключением мы ставим это в нашем config/environments/developer.rb файл:

#Send Email In Development (Use Gmail's Servers) 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.perform_deliveries = true 
    config.action_mailer.smtp_settings = { 
     :address    => "smtp.gmail.com", 
     :port     => 587, 
     :domain    => "*****.co.uk", 
     :user_name   => "******@gmail.com", 
     :password    => "******", 
     :authentication  => :plain, 
     :enable_starttls_auto => true 
    } 
    config.action_mailer.default_url_options = { 
     :host => "localhost:3000" 
    } 

Может быть, вы могли бы попробовать копию - и вставить вышеуказанный код?

+0

Спасибо за подсказку. Я пробовал эти настройки, не добавляя ключ домена, так как я не использую приложения Google и не разрешаю IMAP. Я получаю то же сообщение: 535-5.7.8 Имя пользователя и пароль не принимаются. Есть ли какие-либо puts, которые я могу сделать для отладки, откуда эта ошибка? – user2738707

+0

Вы уверены, что можете отправлять сообщения с помощью IMAP? Я уверен, что это просто для поиска. Может, это проблема? –

+0

Согласно документу, IMAP должен быть включен для чтения сообщений на внешних клиентах, а SMTP используется для отправки сообщений от внешних клиентов. Я думаю, что IMAP не нужно активировать для ActionMailer. https://support.google.com/mail/troubleshooter/1668960?rd=1#ts=1665018,1665144. Это может быть проблема с брандмауэром? – user2738707

0

Пока я все еще не могу отправлять электронные письма через ActionMailer, я думал, что отправлю альтернативу.

https://github.com/nu7hatch/gmail

работает хорошо и легче, потому что вам не нужно использовать какие-либо конфигурационные файлы.

Спасибо.

Смежные вопросы