Ruby Mail gem,如何编写邮件消息脚本

Cap*_*rap 3 ruby email centos5 smtp

我在具有SELinux许可和IPtables关闭的CENTOS 5 VM上安装了testmail.rb:

require 'rubygems'
require 'mail'

options = { :address              => "mail.domain.com",
            :port                 => 466,
            :domain               => 'otherdomain.com',
            :user_name            => 'somedude@domain.com',
            :password             => 'topsecret',
            :authentication       => 'plain',
            :enable_starttls_auto => true  }
 Mail.defaults do
  delivery_method :smtp, options
end

 mail = Mail.new do
      from 'somedude@otherdomain.com'
        to 'admin@domain.com'
   subject 'This is a test email'
      body File.read('body.txt')
 end

puts mail.to_s
Run Code Online (Sandbox Code Playgroud)

运行脚本时的结果如下:

Date: Tue, 30 Nov 2010 12:12:58 -0500
From: somedude@otherdomain.com
To: admin@domain.com
Message-ID: <4cf5309a2f074_284015c5c4de91b8270b2@apvdbs03.3rdomain.local.mail>
Subject: This is a test email
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

test!
Run Code Online (Sandbox Code Playgroud)

"测试!" 是body.txt的内容.

没有电子邮件到达发送到帐户.我们从发送到域管理员获得的smtp设置.我使用telnet成功地在未加密的端口(25)上向域发送电子邮件但是没有得到加密端口(466)的响应,可能是因为我的telnet会话未加密?

有什么方法可以看到脚本执行过程中发生的故障排除?

更新:尝试重定向:> log.log 2>&1,但没有提供任何其他信息.

Jon*_*han 7

你错过了实际发送的那一行.尝试添加

mail.deliver!
Run Code Online (Sandbox Code Playgroud)

到你的脚本结束.