2009-11-02 3 views
0

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

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 

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

Проблема заключается в том, что эта функция не может вывести информацию BCC из объекта TMail, которая передается в качестве параметра «email» для этого объекта. К адресам приходят штрафы, но не BCC.

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

ответ

1

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

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

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

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

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

+0

Это имеет смысл, за исключением того, что получателю, очевидно, не нужно блокировать просмотр своего адреса. В этом случае адрес назначения добавляется с суффиксом «+», который несет определенную информацию о маршрутизации, необходимую для обработки содержимого электронной почты. Я хотел бы иметь возможность сохранить адрес назначения без суффикса без: (a) требуя, чтобы отправитель использовал поле TO, и (b) используя поле CC, поскольку это будет раскрывать суффикс для всех других получатели. Возможно, это невозможно? – 2009-11-02 20:59:55

+0

Я отредактировал свой ответ, чтобы адресовать ваш адрес вашим проблемам. – EmFi

+0

Спасибо. Ваша помощь очень ценится! – 2009-11-02 22:47:25