Получить текстовое тело C

#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. Я сохранил все электронное письмо в виде СТРОКИ. Что я хочу сделать, так это проанализировать эту строку, чтобы получить из нее только тело текста…. Я слишком устал сейчас и не могу разобраться в этом!