加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 连接被拒绝 – 连接(2)Ruby on Rails邮件设置

发布时间:2020-12-17 03:38:10 所属栏目:百科 来源:网络整理
导读:我在config / environments / production.rb和development.rb中都设置了smtp设置,我还在`config / initializers / setup_mail.rb中添加了设置 config.action_mailer.default_url_options = { :host = 'ipaddress' }config.action_mailer.delivery_method = :
我在config / environments / production.rb和development.rb中都设置了smtp设置,我还在`config / initializers / setup_mail.rb中添加了设置

config.action_mailer.default_url_options = { :host => 'ipaddress' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address              => 'smtp.gmail.com',:port                 => 587,:domain               => 'gmail.com',:user_name            => 'EMAIL_ADDRESS@gmail.com',:password             => 'pass',:authentication       => :plain,:enable_starttls_auto => true,:openssl_verify_mode  => 'none'
}

配置/初始化/为setup_mail.rb

ActionMailer::Base.smtp_settings = { 
  :address              => 'smtp.gmail.com',:openssl_verify_mode  => 'none'
} 

ActionMailer::Base.default_url_options[:host] = "ipaddress"

我收到错误连接被拒绝 – 连接(2)

虽然我在localhost中使用以下配置工作,但我没有收到任何错误,并且邮件已经发送.

config / initializers / setup_mail.rb(localhost)

ActionMailer::Base.smtp_settings = { 
  :address              => 'smtp.gmail.com',:domain               => 'localhost',:authentication       => 'plain',:enable_starttls_auto => true
} 

ActionMailer::Base.default_url_options[:host] = "localhost:3000"

在控制台中运行时,错误显示如下

Errno::ECONNREFUSED: Connection refused - connect(2)
from /home/attuser/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/net/smtp.rb:541:in `initialize'
from /home/attuser/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/net/smtp.rb:541:in `open'
from /home/attuser/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/net/smtp.rb:541:in `tcp_socket'
from /home/attuser/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/net/smtp.rb:550:in `block in do_start'
from /home/attuser/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/timeout.rb:69:in `timeout'
from /home/attuser/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/timeout.rb:100:in `timeout'
from /home/attuser/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/net/smtp.rb:550:in `do_start'
from /home/attuser/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/net/smtp.rb:520:in `start'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/mail-2.4.4/lib/mail/network/delivery_methods/smtp.rb:144:in `deliver!'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/mail-2.4.4/lib/mail/message.rb:2034:in `do_delivery'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/mail-2.4.4/lib/mail/message.rb:229:in `block in deliver'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/actionmailer-3.2.9/lib/action_mailer/base.rb:415:in `block in deliver_mail'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/activesupport-3.2.9/lib/active_support/notifications.rb:123:in `block in instrument'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/activesupport-3.2.9/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/activesupport-3.2.9/lib/active_support/notifications.rb:123:in `instrument'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/actionmailer-3.2.9/lib/action_mailer/base.rb:413:in `deliver_mail'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/mail-2.4.4/lib/mail/message.rb:229:in `deliver'
from (irb):28
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/railties-3.2.9/lib/rails/commands/console.rb:47:in `start'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/railties-3.2.9/lib/rails/commands/console.rb:8:in `start'
from /home/attuser/.rvm/gems/ruby-1.9.3-p545/gems/railties-3.2.9/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'

调节器

def sendResume
@name =params[:name]
@email_id = params[:email_id]
@mob_no = params[:ph_no]

attachments = params[:resume]
if simple_captcha_valid?

 if params[:resume]
     filename=attachments.original_filename   

    extname = File.extname(filename)[1..-1]
    mime_type = Mime::Type.lookup_by_extension(extname)
    content_type = mime_type.to_s unless mime_type.nil?


        if content_type !="application/pdf"
           flash[:error]= "Only pdf files are allowed"
           redirect_to :action=>"careers"
        else
         File.open(Rails.root.join('tmp','uploads',attachments.original_filename),'w') do |file|
          re = attachments.read
          file.write(re.force_encoding("utf-8"))
          @attached_path = file.path
        end


        begin
          ResumeMailer.sendResume(@name,@email_id,@mob_no,@attached_path,attachments.original_filename).deliver
          flash[:notice] = "Your resume has been submitted successfully"
          redirect_to :action=>"careers"
        rescue Exception => e
          puts e.message

          logger.warn "error sending mail"
          flash[:error]= "Error in submitting resume"
          redirect_to :action=>"careers"
        end

     end
    else
      flash[:error]= "Please upload your resume"
      redirect_to :action=>"careers"
    end
else

  flash[:error]= "Incorrect captcha"
   redirect_to :action=>"careers"
end

end

安装后缀后,错误在控制台模式下消失,邮件从控制台发送,但在图形模式下(在浏览器中)我收到错误连接被拒绝 – 连接(2).

怎么了,

提前致谢.

解决方法

我发现您在两台服务器上都尝试过相同的设置,但仅在生产/非本地主机环境中遇到问题.

这指出了环境本身的网络配置问题.

在与应用程序相同的服务器上的命令行中,尝试以下命令

telnet smtp.gmail.com 587

您应该看到类似以下的内容

telnet smtp.gmail.com 587
Trying 173.194.79.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP dd5sm276863pbc.85 - gsmtp

如果您没有看到这一点,您很可能会收到连接错误.这意味着您的计算机无法访问gmail服务器.可能的问题是a)一般的出站网络连接,b)防火墙专门阻止所有出站连接c)防火墙阻止/允许连接到特定端口或主机

如果这不起作用,也请尝试使用以下端口代替587

telnet smtp.gmail.com 465
telnet smtp.gmail.com 25

如果其中一个更成功,请更改您的邮件服务器设置以进行相应的使用.

编辑:我们在使用Gmail和Gmail以及我们的自定义域时遇到了很多麻烦.可以帮助的一件事是从配置文件中删除:域行,尝试没有它.

作为参考,这是我使用Gmail托管的自定义域中的Gmail配置:

config.action_mailer.default_url_options = { :host => "my.website.com" }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
    address:              'smtp.gmail.com',port:                 587,domain:               'website.com',user_name:            'user@website.com',password:             'password',authentication:       'plain',enable_starttls_auto: true
}

此外,如果您的Gmail帐户启用了双因素身份验证,则可能需要将其禁用并再次尝试此操作,以确认其不会使问题复杂化.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读