首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Net::SMTP::Response

Parent:Object

该类表示SMTP服务器收到的响应。这个类的实例由SMTP类创建; 他们不应该由用户直接创建。有关SMTP响应的更多信息,请查看RFC 5321的第4.2节

属性

statusR

SMTP响应的三位数答复码

stringR

SMTP响应的人可读型回复文本

公共类方法

new(status, string) Show source

创建Response类的新实例并设置状态和字符串属性

代码语言:javascript
复制
# File lib/net/smtp.rb, line 1003
def initialize(status, string)
  @status = status
  @string = string
end

parse(str) Show source

解析收到的回复并分离回复代码和人可读型的回复文本

代码语言:javascript
复制
# File lib/net/smtp.rb, line 997
def self.parse(str)
  new(str[0,3], str)
end

公共实例方法

capabilities() Show source

如果它有多行,则返回响应中人可读型回复文本的散列。它不返回第一行。散列的关键字是第一个字,散列的值是一个数组,其后的每个字都是数组中的一个值

代码语言:javascript
复制
# File lib/net/smtp.rb, line 1046
def capabilities
  return {} unless @string[3, 1] == '-'
  h = {}
  @string.lines.drop(1).each do |line|
    k, *v = line[4..-1].chomp.split
    h[k] = v
  end
  h
end

continue?() Show source

确定收到的响应是否是肯定性中间答复(3xx答复码)

代码语言:javascript
复制
# File lib/net/smtp.rb, line 1027
def continue?
  status_type_char() == '3'
end

cram_md5_challenge() Show source

代码语言:javascript
复制
# File lib/net/smtp.rb, line 1038
def cram_md5_challenge
  @string.split(/ /)[1].unpack('m')[0]
end

exception_class() Show source

确定是否存在错误并根据响应的答复代码提出适当的错误

代码语言:javascript
复制
# File lib/net/smtp.rb, line 1058
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() Show source

人可读型回复文本的第一行

代码语言:javascript
复制
# File lib/net/smtp.rb, line 1032
def message
  @string.lines.first
end

status_type_char() Show source

取响应代码的第一位数字以确定状态类型

代码语言:javascript
复制
# File lib/net/smtp.rb, line 1015
def status_type_char
  @status[0, 1]
end

success?() Show source

确定收到的回复是否为肯定型完成回复(2xx回复代码)

代码语言:javascript
复制
# File lib/net/smtp.rb, line 1021
def success?
  status_type_char() == '2'
end

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com