Rails 4, how to correctly configure smtp settings (gmail)

后端 未结 5 582
半阙折子戏
半阙折子戏 2020-11-29 22:58

I am trying to create a contact form in Rails 4. I did some digging around here and was able to get most of the stuff to work. (followed @sethfri\'s work here Contact Form M

相关标签:
5条回答
  • 2020-11-29 23:20

    If you run into errors like Net::SMTPAuthenticationError while using gmail for sending out emails (common for Google Apps accounts), visit your gmail settings and enable less secure apps to get the application working.

    0 讨论(0)
  • 2020-11-29 23:21

    2020, Rails 6 updated answer:

      config.action_mailer.perform_deliveries = true
      config.action_mailer.raise_delivery_errors = true
      config.action_mailer.perform_caching = false
      config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
      config.action_mailer.delivery_method = :smtp
      config.action_mailer.smtp_settings = {
        address: "smtp.gmail.com",
        port: 587,
        authentication: "plain",
        enable_starttls_auto: true,
        user_name: "blabla@gmail.com",
        password: "blabla", 
        domain: "smtp.gmail.com",
        openssl_verify_mode: "none",
      }
    
    0 讨论(0)
  • 2020-11-29 23:25

    Google recommends to use OAuth 2.0 for the login process. This configuration is "not so safe" for google, but they tolerate it. You have to allow "less safe connections" in your Google account settings or use the OAuth-way. https://developers.google.com/identity/protocols/OAuth2

    Their library for ruby is still alpha. There seem to be some gems extending ActionMailer for OAuth, but I never used them.

    0 讨论(0)
  • 2020-11-29 23:29

    After few hours to search how to make this working for me, i find a way to make it work. For myself, i needed to make 2-Step Verification and use Gmail application password

    When you enable 2-Step Verification (also known as two-factor authentication), you add an extra layer of security to your account. You sign in with something you know (your password) and something you have (a code sent to your phone).

    Set up 2-Step Verification

    1. Go to the 2-Step Verification page. You might have to sign in to your Google Account.
    2. In the "2-Step Verification" box on the right, select Start setup.
    3. Follow the step-by-step setup process.

    An App password is a 16-digit passcode that gives an app or device permission to access your Google Account. If you use 2-Step-Verification and are seeing a “password incorrect” error when trying to access your Google Account, an App password may solve the problem. Most of the time, you’ll only have to enter an App password once per app or device, so don’t worry about memorizing it

    How to generate an app password

    1. Visit your App passwords page. You may be asked to sign in to your Google Account.
    2. At the bottom, click Select app and choose the app you’re using.
    3. Click Select device and choose the device you’re using.
    4. Select Generate.
    5. Follow the instructions to enter the App password (the 16 character code in the yellow bar) on your device.
    6. Select Done
    0 讨论(0)
  • 2020-11-29 23:44

    You have to set the domain correctly. Currently in the code posted its "mydomain.net". Change it to gmail.com if you want to sent it via gmail.

    config.action_mailer.smtp_settings = {
      address:              'smtp.gmail.com',
      port:                 587,
      domain:               'gmail.com',
      user_name:            'xyz@gmail.com',
      password:             'yourpassword',
      authentication:       :plain,
      enable_starttls_auto: true
    }
    
    0 讨论(0)
提交回复
热议问题