2015-06-04 14 views
0

Я пытаюсь отправить электронное письмо активации в режиме разработки, я использую application.yml для ввода моих учетных данных smtp, не уверен, что мне не хватает, но по какой-то причине я не могу отправить электронная почта активации. вотОтправка smtp в rails с использованием gmail

application.yml

SMTP_PORT: 587 
    SMTP_DOMAIN: localhost:3000 
    SMTP_ADDRESS: smtp.gmail.com 
    SMTP_USERNAME: [email protected] 
    SMTP_PASSWORD: myemailpassword 
    SMTP_AUTHENTICATION: 'plain' 
    enable_starttls_auto: true 

development.rb

config.action_mailer.raise_delivery_errors = false 

    config.action_mailer.delivery_method = :file 
    config.action_mailer.file_settings = { location: 'tmp/mails' } 

    config.action_mailer.default_url_options = { :host => ENV["URL_HOST"] } 

token_mailer.rb

def activation(email, token) 
    @token_url = edit_activation_url token 
    mail to: email 
    end 
+0

Вы пробовали все, что от этого ответа http://stackoverflow.com/questions/1789032/send-email-from-localhost –

+0

Это может быть уместным - перейдите к правильному ответу http://serverfault.com/questions/589458/cannot-get-exim4-gmail-working –

ответ

6

Используйте это в development.rb

config.action_mailer.delivery_method = :smtp 

config.action_mailer.smtp_settings = { 
    :address => "smtp.gmail.com", 
    :port => 587, 
    :user_name => "your mail", 
    :password => "your password", 
    :authentication => :plain, 
    :enable_starttls_auto => true 
} 
+0

Спасибо, что получил его на работу. – cyclopse87

+0

благодарю вас, даже я столкнулся с такой же ситуацией, и это сработало для меня. –

+2

Теперь в 2017 году Вы должны активировать опцию о безопасности и приложения https://myaccount.google.com/lesssecureapps Включите эту опцию, и все это –

0

попробовать это в вашем файле development.rb

config.action_mailer.default_url_options = { :host => 'localhost:3000' } 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
     :address => "smtp.gmail.com", 
     :port => 587, 
     :authentication => :plain, 
     :domain => 'yourdomain.com', 
     :user_name => 'your_gmail_email', 
     :password => 'your_password' 
    } 
2

Настройка почтовой программы для отправки сообщений электронной почты

в приложении посмотреть файл/отправители/user_mailer.rb

class UserMailer < ActionMailer::Mailer 
    default from: "[email protected]" 

def welcome(user_email) 
    @user=User.find_by_email user_email 
    Rails.logger.info "==========sending welcome email to ==> #{@user.email}" 
    mail(:to => @user.email, :subject => "Hi #{@user.username},Welcome to #{configatron.app_name}") 
end 
end 

настройки для отправки по электронной почте

app/views/user_emailer/welcome.html.erb 

<p>Hi <%= @user.username %>,Welcome to myapp.com</p> 

Настройка электронной конфигурации

в конфигурации/Инициализаторы/email_setup.rb

if Rails.env != 'test' 
    email_settings = YAML::load(File.open("#{Rails.root.to_s}/config/email.yml")) 
    ActionMailer::Base.smtp_settings = email_settings[Rails.env] unless email_settings[Rails.env].nil? 
end 

установки ключей/паролей, используя gmail..for развитие, но использовать Mailchimp/Mandrill для про

in config/email.yml 

    development: 
     :address: smtp.gmail.com 
     :port: 587 
     :authentication: plain 
     :user_name: [email protected] 
     :password: password 
     :enable_starttls_auto: true 
    production: 
     :address: smtp.gmail.com 
     :port: 587 
     :authentication: plain 
     :user_name: [email protected] 
     :password: password 
     :enable_starttls_auto: true 

пользовательский почтовый клиент для отправки электронной почты

UserMailer.welcome(current_user).deliver 

Надеюсь, это поможет .... :)

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