Ruby on rails Gmail在Rails4项目中不使用环境变量发送,但环境变量显示在控制台中

Ruby on rails Gmail在Rails4项目中不使用环境变量发送,但环境变量显示在控制台中,ruby-on-rails,gmail,environment-variables,development-environment,Ruby On Rails,Gmail,Environment Variables,Development Environment,我正在编写关于ActiveRecords的教程,需要配置ActionMailer 我在~/.bashrc中配置了环境变量,并且该系统一直工作可靠 我在development.rb中配置了所有内容 development.rb config.action_mailer.delivery_method = :smtp config.action_mailer.perform_deliveries = true config.action_mailer.default_url_options =

我正在编写关于ActiveRecords的教程,需要配置ActionMailer

我在~/.bashrc中配置了环境变量,并且该系统一直工作可靠

我在development.rb中配置了所有内容

development.rb

config.action_mailer.delivery_method = :smtp

config.action_mailer.perform_deliveries = true

config.action_mailer.default_url_options = { :host => "localhost:3000" }

config.action_mailer.smtp_settings = {
    address:              "smtp.gmail.com",
    port:                 587,
    domain:               "gmail.com",
    user_name:            ENV[ "GMAIL_USERNAME" ],
    password:             ENV[ "GMAIL_PASSWORD"],
    authentication:       "plain",
    enable_starttls_auto: true
}
我的联系人表单.rb型号是:

class ContactForm < MailForm::Base

    attribute :name, :validate => true

    attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i

    attribute :message, :validate => true

    # Declare the e-mail headers
    def headers
        {
            :subject => 'ArcadeNomad - Contact Request',
            :to => ENV[ "OWNER_EMAIL" ],
            :from => ENV[ "OWNER_EMAIL" ]
        }
    end

end
class ContactFormtrue
属性:email,:validate=>/\A([\w\.%\+\-]+)@([\w\-]+\)+([\w]{2,})\z/i
属性:message,:validate=>true
#声明电子邮件标题
def标题
{
:subject=>'ArcadeNomad-联系请求',
:to=>ENV[“所有者电子邮件”],
:from=>ENV[“所有者\电子邮件”]
}
结束
结束
当我在rails控制台中测试所有内容时,我得到:

Machine:dev_arcadenomad_com Account$ rails c --sandbox
Loading development environment in sandbox (Rails 4.2.1)
Any modifications you make will be rolled back on exit
>> contact = ContactForm.new(:name => 'Name', :email => 'SomeMail@domain.tld', :message => 'I love ArcadeNomad!')
=> #<ContactForm:0x007fde0d6d38a8 @name="Name", @email="SomeMail@domain.tld", @message="I love ArcadeNomad!">
>> contact.valid?
=> true
>> contact.deliver    
  Rendered /Users/MyAccount/.rvm/gems/ruby-2.2.1@learn-active-records/gems/mail_form-1.5.1/lib/mail_form/views/mail_form/contact.erb (8.1ms)

MailForm::Notifier#contact: processed outbound mail in 239.6ms

Sent mail to mymail@gmail.com (6.9ms)
Date: Sat, 27 Jun 2015 17:32:01 +0200
From: mymail@gmail.com
To: mymail@gmail.com
Message-ID: <LongString@machine.domain.tl.mail>
Subject: ArcadeNomad - Contact Request
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<h4 style="text-decoration:underline">ArcadeNomad - Contact Request</h4>


  <p><b>Name:</b>
  Name</p>

  <p><b>Email:</b>
  SomeMail@domain.tld</p>

  <p><b>Message:</b>
  I love ArcadeNomad!</p>


=> true
Machine:dev_arcadenomad_com帐户$rails c--sandbox
在沙箱中加载开发环境(Rails 4.2.1)
您所做的任何修改都将在退出时回滚
>>contact=ContactForm.new(:name=>'name',:email=>'SomeMail@domain.tld“,:message=>“我爱阿卡德诺玛!”)
=> #
>>联系人:有效吗?
=>正确
>>联系,递送
Rendered/Users/MyAccount/.rvm/gems/ruby-2.2。1@learn-活动记录/gems/mail_form-1.5.1/lib/mail_form/views/mail_form/contact.erb(8.1ms)
MailForm::Notifier#contact:在239.6ms内处理出站邮件
发送邮件至mymail@gmail.com(6.9毫秒)
日期:2015年6月27日星期六17:32:01+0200
发件人:mymail@gmail.com
致:mymail@gmail.com
消息ID:
主题:ArcadeNomad-联系请求
Mime版本:1.0
内容类型:text/html;
字符集=UTF-8
内容传输编码:7bit
ArcadeNomad-联系请求
姓名:
名字

电邮: SomeMail@domain.tld

信息: 我爱阿卡迪诺疯了

=>正确
但是没有邮件发送

如果我将我的凭证硬编码到development.rb中,一切正常。 当我在rails控制台中测试ENV[“GMAIL_USERNAME”]时,我的邮件凭证显示正确


我遗漏了什么?

您的大写字母锁好像坏了。对不起,我不明白。你是说,因为我用大写字母突出了一些单词吗?是的。这会使你的帖子更难阅读,而不是更容易。至于你的问题,我不是Ruby专家,但我看不到你在哪里真正尝试发送消息。对不起,我会记住不要经常使用caps lock。我添加了一些关于我的问题的信息。