Rails的邮件程序提供:的getaddrinfo:产品名称或服务不知道

问题描述:

当我试图确认邮件发送给用户在我的Rails应用程序,它使我这个错误在我的浏览器:Rails的邮件程序提供:的getaddrinfo:产品名称或服务不知道

SocketError (getaddrinfo: Name or service not known) 

突出这条线:SwarmNotifier.confirmvisitor(@member).deliver

这里swarm_notifier.rb邮件程序:

class SwarmNotifier < ActionMailer::Base 

    def confirmplayer(member) 
    @member = member 

    mail :to => @member.email, :from => "[email protected]", :subject => "Player registration confirmation" 
    end 

    def confirmadmin(member) 
    @member = member 

    mail :to => @member.email, :from => "[email protected]", :subject => "Administrator registration confirmation" 
    end 

    def confirmvisitor(member) 
    @member = member 

    mail :to => @member.email, :from => "[email protected]", :subject => "Visitor registration confirmation" 
    end 
end 

其调用这些确认方式的member_controller.rb是这样的:

def create 
    @member = Member.new(member_params) 

    respond_to do |format| 
     if @member.save 
    case @member.role 
    when "visitor" 
      SwarmNotifier.confirmvisitor(@member).deliver 
    when "administrator" 
      SwarmNotifier.confirmadmin(@member).deliver 
    when "player" 
      SwarmNotifier.confirmplayer(@member).deliver 
     end 
     format.html { redirect_to @member, notice: 'Member was successfully created.' } 
     format.json { render :show, status: :created, location: @member } 
     else 
     format.html { render :new } 
     format.json { render json: @member.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

我为setup_mail.rb这个样子的:

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.smtp_settings = { 
    :address => "stmp.gmail.com", 
    :port => 587, 
    :domain => 'localhost', 
    :user_name => "[email protected]", 
    :password => "mypass", 
    :authentication => "plain", 
    :enable_starttls_auto => true 
} 

ActionMailer::Base.raise_delivery_errors = true 
ActionMailer::Base.perform_deliveries = true 

有人可以帮我解决这个问题?

+0

试着改变你的本地主机名'127.0 .0.1' – Pavan

+0

我刚刚做到了,并且发生同样的错误。 – yolo

+0

尝试此帖http://*.com/questions/23300150/actionmailer-not-working-when-i-change-gmail-password/ 23300459#23300459 –

我终于找到了神奇的解决方案忘记=>:我校的防火墙挡住了我的SMTP连接...

语法错误 - 你以后:from

mail :to => @member.email, :from => "[email protected]", :subject => "Player registration confirmation" 
+0

现在,我解决了这个问题我有另一个错误:getaddrinfo:在这一行中未知的名称或服务SwarmNotifier.confirmvisitor(@member).deliver in swarm_notifier.rb – yolo

+0

您尚未在本地主机中配置邮件服务器,或者您的系统没有Internet连接。 – emaillenin

+0

我认为配置setup_mail.rb就够了吗?我应该安装sendmail吗? – yolo