Another alternative is to use String.Split:
private string[] splitString = new string[]{@"--=_NextPart_SMP_"};
private List<string> getSections(string source)
{
return source.Split(splitString, StringSplitOptions.RemoveEmptyEntries).ToList();
}
private string source = @"Your test content goes here";
List<string> result = getSections(source);
if(result == null) throw new EvaluateException("can't parse source !");
for (int i = 0; i < result.Count; i++)
{
Console.WriteLine("Section: {0} Value: {1}",i.ToString(),result[i]);
}