#c #parsing #email
#c #синтаксический анализ #Адрес электронной почты
Вопрос:
Как я могу получить тело текста в виде строки?
From username@localhost Fri May 13 12:28:30 2010
Return-Path: <username@localhost>
X-Original-To: recipe@localhost
Delivered-To: recipe@localhost
Received: from cristi?localhost (localhost [127.0.0.1])
by Notebook (Postfix) with SMTP id 50F6F809E0
for <test@localhost>; Fri, 13 May 2010 12:28:30 0300 (EEST)
Message-Id: <20110513092830.50F6F809E0@Cristi-Notebook>
Date: Fri, 13 May 2010 12:28:30 0300 (EEST)
From: username@localhost
To: undisclosed-recipients:;
Text Body
.
Ответ №1:
Различные формы выполнения этого, но если эта строка всегда оформляется таким образом, вы можете прочитать строку, сравнивая текущий обрабатываемый символ с последним, пока не обнаружите, что они оба являются ‘ n’ (идентификатор новой строки).
Это могло бы сработать, потому что, если формат всегда один и тот же, вы должны иметь:
Кому: нераскрытым-получателям:;
Текстовое тело
.
Что может быть прочитано как:
Кому: нераскрыто-получатели:;n
n
Текстовое тело n
n
.
Первая пара будет указывать начало тела в качестве следующего символа. Последнее (не следующее, the last), за которым следует точка, будет указывать на конец тела.
Примечание: Как я уже говорил ранее, это всего лишь один способ сделать это, и поскольку вы пометили его C, я знаю, что работа с чтением символов в C. не будет проблемой . 🙂
Надеюсь, это поможет.
Комментарии:
1. Не могли бы вы привести мне пример кода на C? Я уже знал, что вы сказали, но у меня возникли проблемы при написании кода…
2. @Vlasin. Что вы пробовали? Не зная, что вы сделали, вполне разумный ответ: используйте fread
3. Я сохранил все электронное письмо в виде СТРОКИ. Что я хочу сделать, так это проанализировать эту строку, чтобы получить из нее только тело текста…. Я слишком устал сейчас и не могу разобраться в этом!