class Net::SMTP::Response
这个类表示 SMTP
服务器收到的响应。 此类的实例由 SMTP
类创建;用户不应直接创建它们。 有关 SMTP
响应的更多信息,请查看 RFC 5321 第 4.2 节
属性
status[R]
SMTP
响应的三位数字回复代码
string[R]
SMTP
响应的人类可读回复文本
公共类方法
new(status, string) 点击切换源代码
创建 Response
类的新实例,并设置状态和字符串属性
# File net-smtp-0.5.0/lib/net/smtp.rb, line 1059 def initialize(status, string) @status = status @string = string end
parse(str) 点击切换源代码
解析接收到的响应,并分离回复代码和人类可读的回复文本
# File net-smtp-0.5.0/lib/net/smtp.rb, line 1053 def self.parse(str) new(str[0,3], str) end
公共实例方法
capabilities() 点击切换源代码
如果响应是多行的,则返回响应中人类可读回复文本的哈希。它不返回第一行。哈希的键是第一个单词,哈希的值是一个数组,其中每个后续单词都是数组中的一个值
# File net-smtp-0.5.0/lib/net/smtp.rb, line 1102 def capabilities return {} unless @string[3, 1] == '-' h = {} @string.lines.drop(1).each do |line| k, *v = line[4..-1].split(' ') h[k] = v end h end
continue?() 点击切换源代码
确定接收到的响应是否为肯定的中间回复(3xx 回复代码)
# File net-smtp-0.5.0/lib/net/smtp.rb, line 1083 def continue? status_type_char() == '3' end
cram_md5_challenge() 点击切换源代码
创建 CRAM-MD5 质询。您可以在 Wikipedia 上查看有关 CRAM-MD5 的更多信息: en.wikipedia.org/wiki/CRAM-MD5
# File net-smtp-0.5.0/lib/net/smtp.rb, line 1094 def cram_md5_challenge @string.split(/ /)[1].unpack1('m') end
exception_class() 点击切换源代码
确定是否存在错误,并根据响应的回复代码引发相应的错误
# File net-smtp-0.5.0/lib/net/smtp.rb, line 1114 def exception_class case @status when /\A4/ then SMTPServerBusy when /\A50/ then SMTPSyntaxError when /\A53/ then SMTPAuthenticationError when /\A5/ then SMTPFatalError else SMTPUnknownError end end
message() 点击切换源代码
人类可读回复文本的第一行
# File net-smtp-0.5.0/lib/net/smtp.rb, line 1088 def message @string.lines.first end
status_type_char() 点击切换源代码
获取回复代码的第一位数字以确定状态类型
# File net-smtp-0.5.0/lib/net/smtp.rb, line 1071 def status_type_char @status[0, 1] end
success?() 点击切换源代码
确定接收到的响应是否为肯定的完成回复(2xx 回复代码)
# File net-smtp-0.5.0/lib/net/smtp.rb, line 1077 def success? status_type_char() == '2' end