0

ランナーにパイプする「eblast-bounceback@mydomain.com」と呼ばれるcpanelを介してフォワーダーをセットアップしました(つまり、レールを介してメールを受信するためのチュートリアルを調べてください)。この部分は問題なく動作します。ロガーを使用するように設定しているため、スクリプトが実行中であることがわかります。私が抱えている問題は、バウンスバック メール内でカスタム ヘッダー「X-Subscriber-Id:」を見つけることができることです。生の電子メール データにアクセスして正規表現検索を行う方法はありますか?それとももっと複雑な方法でこれを行う必要がありますか?

別の注意として、バウンスバックを受け取った場合にデータベースから電子メールを自動的に削除するのは賢明ですか、それとも悪意を避けるために必要な追加の手順はありますか?

編集:投稿されたコード...

def receive(email)
    # email.body doesn't work...how do I search for this?  I know it's in the email...
    account = /X\-Subscriber\-Id: (.*)/.match(email.body)[1].split("|") rescue nil
    # If we've found the account info
    logger.info "Nil?: #{account.nil?}"
    if !account.nil?
        id, private_id = account[0].to_i, account[1]
        if @subscriber = Subscriber.find_by_id(id)
            @subscriber.update_attribute(:bouncebacks, @subscriber.bouncebacks.to_i + 1)
            logger.info "Faulty Account: #{@subscriber.email}"
        end
    else
            # This is where we email the admin in case of failure to find an account (manual removal from database)
            # This section is incomplete at this time
        @from = "My Site <admin@mysite.com>"
        @recipients = "admin@mysite.com"
        @subject = "Bounceback could not be processed"
        #@body = email.body -- What do I put here to simply re-send the email?
    end
end
4

1 に答える 1

0

email.body の代わりに email.to_s を使用しました。

于 2014-02-13T01:17:16.920 に答える