Объект TMail отсутствует информация BCC - PullRequest
0 голосов
/ 02 ноября 2009

Я выполняю задание cron, которое каждую минуту проверяет наличие новой почты в учетной записи Gmail. Если какое-либо новое сообщение найдено, оно вызывает функцию получения, которая начинается следующим образом:

  def receive(email)     
    # REPORT SOME INFORMATION ABOUT INBOUND EMAIL RECEIPT
    puts "SUBJECT: #{email.subject}" 
    puts "#{email.class}"
    puts email.to.inspect
    puts email.bcc.inspect
    puts email.from.inspect
    ...
  end

Я бы хотел обрабатывать только те электронные письма, которые адресованы системе в полях TO или BCC. Идея состоит в том, что пользователи не должны раскрывать различные адреса электронной почты назначения другим лицам.

Проблема заключается в том, что эта функция не может извлекать информацию BCC из объекта TMail, который передается в качестве параметра "email" этому объекту. Адреса TO проходят нормально, но не через BCC.

Кто-нибудь знает, почему это так?

1 Ответ

1 голос
/ 02 ноября 2009

TL; версия DR: В качестве почтового клиента вы не можете надежно получить поле BCC.

Конечно, отсутствует поле BCC. После того, как используется для направления электронного письма, оно удаляется из сообщения.

BCC означает слепое копирование. И используется для копирования людей в сообщениях, не передавая их адреса всем, кто получает сообщение. Если бы во входящем электронном письме все еще была эта информация, это не соответствовало бы его цели.

Возможно, вам следует прочитать раздел RFC 2822 об адресации.

То, о чем вы спрашиваете, не определено явно и становится зависимым от реализации. Почтовый пользовательский агент (Outlook / Thunderbird / Gmail / и т. Д.) Или Почтовый транспортный агент / агенты отправки (любая программа, которая направляет вам сообщение) могут удалять нужные данные, прежде чем вы их получите.

...