为什么这封电子邮件会发送到我的Gmail帐户而不是我的学校帐户?

时间:2011-05-03 05:14:13

标签: ruby-on-rails ruby ruby-on-rails-3 rake actionmailer

我构建了一个自定义rake任务来向我的用户发送电子邮件,但我希望在发送之前先测试该电子邮件。

我有这个rake文件:

namespace :send_out do
  task :generate_url => :environment do
    SignedUser.all.each do |user|
      #user.build_invitation
      #user.generate_url
    end
  end

  task :email => :environment do
    #SignedUser.all.each do |user|
      UserMailer.email.deliver
    #end
  end

  task :all => [:generate_url, :email]
end

正在运行rake send_out:all会触发电子邮件操作:

def email
  #@signed_user = user
  mail(:to => "meltzerj@wharton.upenn.edu", :subject => "DreamStill is Back")
  #mail(:to => user.email, :subject => "DreamStill is Back")
end

我有一封email.html.erb个电子邮件文件。

当我运行heroku rake send_out:all --trace时,我会在日志中找到它:

** Invoke send_out:all (first_time)
** Invoke send_out:generate_url (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute send_out:generate_url
** Invoke send_out:email (first_time)
** Invoke environment 
** Execute send_out:email
Rendered user_mailer/email.html.erb (0.5ms)
** Execute send_out:all

所以似乎所有内容都被调用了,但我没有收到电子邮件:meltzerj@wharton.upenn.edu。但是,如果我将其通过电子邮件发送到我的Gmail帐户,我会收到它。这是为什么?

3 个答案:

答案 0 :(得分:1)

我刚刚尝试了一个telnet smtp到为wharton.upenn.edu(basalt.wharton.upenn.edu)列出的mx服务器,并且在发送一封'来自:'的邮件之后立即打了5.7.1访问被拒绝了通常会发现是垃圾邮件过滤器。

这意味着服务器正在做一些事情,比如检查连接的ip或者进行反向dns检查,spf等......

我对heroku有点模糊,但我猜这是从你的本地机器发送的。如果这样可能是问题,因为您可能正在从动态IP(如comcast)发送,并且您的IP也无法解析为helo中的域名。

我会在heroku服务器上尝试它,你可能不会遇到这个问题。

答案 1 :(得分:0)

我不确定您正在运行rake任务的环境,但是您可能需要检查config/environments/*.rb个文件中是否存在可能导致您的电子邮件失败的设置:

config.action_mailer.raise_delivery_errors = false

答案 2 :(得分:0)

我怀疑您的学校帐户将其标记为垃圾邮件,或拒绝投放。尝试为本地MTA拖尾日志文件并查看它的内容。

如果您的服务器使用的是后缀,请尝试tail -f /var/log/maillog | grep upenn.edu