ruby 之 net/smtp.rb

C:\jruby-1.6.8\lib\ruby\1.9\net


发送邮件

使用SMTP发送邮件时,首先要用SMTP.start打开回话。第一个参数是服务器的地址,第二个参数是端口号。若使用块{}的话,自动处理末尾。

打开会话之后,就可以使用send_mail来发信了。

Net::SMTP.start("outlok.yihaodian.com")   {|smtp|
      smtp.send_message message, '[email protected]',mail_list

From: WATF_rebot <[email protected]>
To: all related <[email protected]>
Subject: [Auto-Test Alert]Test Failed #{Time.new}

Data:

Message-Id:

}


结束会话

发送邮件后,调用smtp#finish来结束会话,或者会块。

# using SMTP#finish
smtp = Net::SMTP.start( 'your.smtp.server', 25 )
smtp.send_mail mail_string, 'from@address', 'to@address'
smtp.finish

# using block form of SMTP.start
Net::SMTP.start( 'your.smtp.server', 25 ) {|smtp|
    smtp.send_mail mail_string, 'from@address', 'to@address'
}

HELO域

在SMTP中,系统会询问 发件主机名(成为HELO域)

Net::SMTP.start( 'your.smtp.server', 25,
                 'mail.from.domain' ) {|smtp|


class Net::SMTP

类方法

new(address,port=25)

   生成新的SMTP 对象。address是SMTP服务器的FQDN,port是连接端口号。但该方法并不会进行连接。

start(address, port = 25, hello_domain = "localhost.localdomain", account = nil, passport = nil, authtype = nil)

start(address, port = 25, hello_domain = "localhost.localdomain", account = nil, passport = nil, authtype = nil){ |smtp| ... }

  等同于

Net::SMTP.new(address,port).start(helo_domain,account,password,authtype)

# example
Net::SMTP.start( 'your.smtp.server' ) {
    smtp.send_mail mail_string, '[email protected]', '[email protected]'
}


http://www.kuqin.com/rubycndocument/man/addlib/net/smtp.html





你可能感兴趣的:(ruby 之 net/smtp.rb)