【问题标题】:How to send email via smtp with Ruby's mail gem?如何使用 Ruby 的邮件 gem 通过 smtp 发送电子邮件?
【发布时间】:2012-10-04 18:47:14
【问题描述】:

我正在为 Ruby 使用 mail gem https://github.com/mikel/mail

如何通过 smtp 服务器发送电子邮件?如何指定地址和端口?我应该为 Gmail 使用哪些设置?

github上的README只给出了本地服务器发送的例子。

【问题讨论】:

    标签: ruby email smtp


    【解决方案1】:

    来自http://lindsaar.net/2010/3/15/how_to_use_mail_and_actionmailer_3_with_gmail_smtp

    要通过 GMail 发送,您需要将 Mail::SMTP 类配置为具有正确的值,因此要尝试此操作,请打开 IRB 并输入以下内容:

    require 'mail'
    
    options = { :address              => "smtp.gmail.com",
                :port                 => 587,
                :domain               => 'your.host.name',
                :user_name            => '<username>',
                :password             => '<password>',
                :authentication       => 'plain',
                :enable_starttls_auto => true  }
    
    
    
    Mail.defaults do
      delivery_method :smtp, options
    end
    

    最后一个块调用Mail.defaults,它允许我们为从现在开始创建的所有邮件对象设置全局传递方法。高级用户提示,您不必使用全局方法,您可以直接在任何单独的 Mail::Message 对象上定义 delivery_method 并且每封电子邮件有不同的交付代理,如果您正在构建具有多个用户的应用程序,这很有用不同的服务器处理他们的电子邮件。

    Mail.deliver do
           to 'mikel@test.lindsaar.net'
         from 'ada@test.lindsaar.net'
      subject 'testing sendmail'
         body 'testing sendmail'
    end
    

    【讨论】:

    • 我收到以下错误:/usr/local/rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/net/smtp.rb:960:in 'check_auth_response': 534-5.7.14 &lt;https://accounts.google.com/ContinueSignIn?sarp=1&amp;scc=1&amp;plt=AKgnsbvUX (Net::SMTPAuthenticationError) - 我三次检查了我的连接数据,一切正常。
    • @kitsched 检查您的 gmail 帐户中的安全设置。 Gmail 正在阻止可疑活动。您需要转到设置并确认您知道该活动
    • @w_g 谢谢,在此期间我想通了。下次登录时,它提示我确认“可疑”活动。
    • 这在开发中对我不起作用,必须启用此设置google.com/settings/security/lesssecureapps
    猜你喜欢
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2011-04-06
    • 2017-05-12
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多