1

私は Rails 3 を実際に動かして、実際の電子メールを送信するセクションを調べてきました。Gmail アカウントにメールを送信する機能を実行すると、メールは受信されますが、送信元アドレスは ではなく Gmail としても設定されますticketee@gmail.com。私はデフォルトの :from setup も持っています:

  class Notifier < ActionMailer::Base
    default from: "ticketee@gmail.com"

    def comment_updated(comment, user)
      @comment = comment
      @user = user
      mail from: "ticketee@gmail.com", to: user.email, subject: "[ticketee] #{comment.ticket.project.name} - #{comment.ticket.title}"
    end
  end

なぜこれが起こっているのかについてのアイデアはありますか?

編集

上記のアドレスを私の gmail に変更しました。テスト応答として nil を取得しなくなりました。ただし、別の問題が発生しているようです。

Then there should be an email from Ticketee in my box               # features/step_definitions/app_email_steps.rb:20
      deadlock; recursive locking (ThreadError)
      <internal:prelude>:8:in `lock'
      <internal:prelude>:8:in `synchronize'
      ./features/step_definitions/app_email_steps.rb:22:in `block (2 levels) in <top (required)>'
      <internal:prelude>:10:in `synchronize'
      ./features/step_definitions/app_email_steps.rb:21:in `/^there should be an email from Ticketee in my box$/'
      features/gmail.feature:32:in `Then there should be an email from Ticketee in my box'

Failing Scenarios:
cucumber features/gmail.feature:20 # Scenario: Receiving a real-world email
4

2 に答える 2

1

ここに本の著者。

線はdefault :from間違いです。Gmailが強制するため、メールの差出人アドレスを設定することはできません。メールの表示名は引き続き設定できると思います。

default from: "From Ticketee, with love <thecorrectemail@gmail.com>"
于 2012-07-02T04:08:01.480 に答える
1

ステップをこれに変更すると、機能します

@mails =  @gmail.inbox.find(:unread,from: "didahsutest@gmail.com")
@mails.each do |mail|
    if  mail.subject =~ /^\[ticketee\]/
        @received_mail = true
    end
    @received_mail.should be_true
end

しかし、私は削除する必要がありますmail.delete!

このエラーが発生したため

Label '[Gmail]/Trash' doesn't exist! (Gmail::Message::NoLabelError)
于 2013-03-09T05:20:36.213 に答える