class Net::POPMail

此类表示存在于 POP 服务器上的消息。此类的实例由 POP3 类创建;它们不应由用户直接创建。

属性

length[R]

消息的长度,以字节为单位。

number[R]

消息在服务器上的序列号。

size[R]

消息的长度,以字节为单位。

公共实例方法

all( dest = +'' )
别名:pop
delete() 点击以切换源代码

标记消息以便在服务器上删除。删除操作直到会话结束时才会实际发生;可以通过调用 POP3#reset() 来取消所有已标记消息的删除。

如果发生错误,此方法会引发 POPError

示例

POP3.start('pop.example.com', 110,
           'YourAccount', 'YourPassword') do |pop|
  n = 1
  pop.mails.each do |popmail|
    File.open("inbox/#{n}", 'w') do |f|
      f.write popmail.pop
    end
    popmail.delete         ####
    n += 1
  end
end
# File net-pop-0.1.2/lib/net/pop.rb, line 861
def delete
  @command.dele @number
  @deleted = true
end
也别名为:delete!
delete!()
别名:delete
deleted?() 点击以切换源代码

如果邮件已被删除,则为 True。

# File net-pop-0.1.2/lib/net/pop.rb, line 869
def deleted?
  @deleted
end
header(dest = +'') 点击以切换源代码

获取消息头。

可选的 dest 参数已过时。

如果发生错误,此方法会引发 POPError

# File net-pop-0.1.2/lib/net/pop.rb, line 837
def header(dest = +'')
  top(0, dest)
end
inspect() 点击以切换源代码

提供类状态的人类可读的字符串表示形式。

# File net-pop-0.1.2/lib/net/pop.rb, line 763
def inspect
  +"#<#{self.class} #{@number}#{@deleted ? ' deleted' : ''}>"
end
mail( dest = +'' )
别名:pop
pop( dest = +'' ) { |message_chunk| ... } 点击以切换源代码

此方法获取消息。如果使用块调用,则消息会一次一块地传递给该块。如果未用块调用,则消息将作为字符串返回。可选的 dest 参数将添加到返回的字符串前面;此参数基本上已过时。

不带块的示例

POP3.start('pop.example.com', 110,
           'YourAccount', 'YourPassword') do |pop|
  n = 1
  pop.mails.each do |popmail|
    File.open("inbox/#{n}", 'w') do |f|
      f.write popmail.pop
    end
    popmail.delete
    n += 1
  end
end

带块的示例

POP3.start('pop.example.com', 110,
           'YourAccount', 'YourPassword') do |pop|
  n = 1
  pop.mails.each do |popmail|
    File.open("inbox/#{n}", 'w') do |f|
      popmail.pop do |chunk|            ####
        f.write chunk
      end
    end
    n += 1
  end
end

如果发生错误,此方法会引发 POPError

# File net-pop-0.1.2/lib/net/pop.rb, line 805
def pop( dest = +'', &block ) # :yield: message_chunk
  if block_given?
    @command.retr(@number, &block)
    nil
  else
    @command.retr(@number) do |chunk|
      dest << chunk
    end
    dest
  end
end
也别名为:all, mail
top(lines, dest = +'') 点击以切换源代码

获取消息头和 lines 行正文。

可选的 dest 参数已过时。

如果发生错误,此方法会引发 POPError

# File net-pop-0.1.2/lib/net/pop.rb, line 825
def top(lines, dest = +'')
  @command.top(@number, lines) do |chunk|
    dest << chunk
  end
  dest
end
uidl()
别名:unique_id
unique_id() 点击以切换源代码

返回消息的唯一 ID。通常,唯一 ID 是消息的哈希字符串。

如果发生错误,此方法会引发 POPError

# File net-pop-0.1.2/lib/net/pop.rb, line 877
def unique_id
  return @uid if @uid
  @pop.set_all_uids
  @uid
end
也别名为:uidl