2010-11-30 7 views
3

ich auf einem CENTOS 5 VM mit SELinux permissiven und IPtables off testmail.rb habe:Ruby-Mail-Edelstein, wie man Skript Mail-Nachrichten

require 'rubygems' 
require 'mail' 

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

mail = Mail.new do 
     from '[email protected]' 
     to '[email protected]' 
    subject 'This is a test email' 
     body File.read('body.txt') 
end 

puts mail.to_s 

Das Ergebnis, wenn das Skript ausgeführt wird, ist dies:

Date: Tue, 30 Nov 2010 12:12:58 -0500 
From: [email protected] 
To: [email protected] 
Message-ID: <[email protected]> 
Subject: This is a test email 
Mime-Version: 1.0 
Content-Type: text/plain; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 

test! 

"Test!" ist der Inhalt von body.txt.

Keine E-Mail erreicht jemals das gesendete Konto. Die SMTP-Einstellungen, die wir von dem an den Domänenadministrator gesendeten erhalten haben. Ich benutzte Telnet, um erfolgreich eine E-Mail an die Domäne am unverschlüsselten Port (25) zu senden, bekam aber keine Antwort vom verschlüsselten Port (466), möglicherweise weil meine Telnet-Sitzung unverschlüsselt war?

Was kann ich sehen, was während der Ausführung des Skripts zur Fehlerbehebung passiert?

Update: Versuchte Umleitung:> log.log 2> & 1, aber das hat keine zusätzlichen Informationen zur Verfügung gestellt.

Antwort

7

Sie verpassen die Zeile tatsächlich zu senden. Versuchen Sie,

mail.deliver! 

an das Ende Ihres Skripts hinzuzufügen.

+0

gratitudinus maximus! –