Как удалить перенаправленное сообщение «Начало»: часть тела письма в приложении rails 3 - PullRequest
3 голосов
/ 01 июня 2011

Я получаю переадресованную электронную почту в свое приложение rails 3 и работает нормально.

Но в переадресованной электронной почте оно содержит, например, следующее сообщение вверху:

Begin forwarded message:

From: roger rabbit <sales@mysite.com>
Date: 23 May 2011 13:52:08 GMT+01:00
To: sam@yoursite.com
Subject: Hi threre

Dear Mike 

Yes please do the work for me!

Этоизменяется формат в отношении того, какой почтовый клиент отправил сообщение.

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

Dear Mike 

Yes please do the work for me!

Что лучшеспособ сделать это, как я знаю, я могу сделать это для этого конкретного формата, но мне нужно, чтобы он был более общим / умным.

Есть ли какой-нибудь гем / lib, который я должен использовать?

Любойпомощь была бы отличной.

спасибо Рик

Ответы [ 2 ]

0 голосов
/ 09 июня 2011

Я думаю, что вы должны использовать метод split для класса String.Попробуйте что-то вроде этого:

например, переменная - содержит ваше сообщение.

b = a.split("\n\r\n", 3) maybe b = a.split("\n\n", 3)

он разделит ваш файл на подстроки на основе разделителя (\ n \ n в вашем случае)и вернуть массив этих подстрок.

Итак, наконец, вы должны просто сделать следующее:

c = b[2].to_s 

puts c => "Dear Mike \n\nYes please do the work for me!\n"

Это не хорошее решение, но это должно сработать

0 голосов
/ 02 июня 2011

Я не слышал о драгоценном камне или библиотеке, которые могли бы помочь в этом, но мой первый взлом на это будет:

  1. Решение проблемы «Начать перенаправленное сообщение», которое варьируется между клиентами, может быть сложным.
  2. Работа с заголовками писем должна быть проще, поскольку они должны быть предсказуемыми.

Для номера 1: я бы предположил, что в большинстве (надеюсь, во всех) случаях вы хотите отбросить любые строки выше строки «От:». Итак, найдите номер строки, с которой «From:» включен (возможно, через regex), удалите все строки выше этого. Это позволило бы избежать получения всех вариантов сообщения «Начать пересылку:», которые будут предлагаться различными почтовыми клиентами.

Для номера 2: есть регулярное выражение, проверяющее информацию заголовка электронного письма. То, что проверяет «From:» или «To:» и т. Д., Привязано к началу строки, а затем удаляет эту строку, если она совпадает.

Я бы попытался получить как можно больше тестовых примеров (например, переадресованных писем), чтобы убедиться, что ваша система работает правильно. Если у вас есть несколько конкретных примеров, на которых вы застряли, мы сможем помочь вам в дальнейшем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...