Exemplo n.º 1
0
		private void Read ()
		{
		        message = new Message ();
			message.Path = path;
			string data;
			bool isBody = false;
			
			try {
				
				while ((data = reader.ReadLine ()) != null) {

					// Break for new message
					
					if (data.StartsWith ("From - ")) {
						return;
					}

					// Add body to message
					
					if (isBody) {
						message.AppendBody (data);
						continue;
					}

					// Break for message content

					if (data.Length == 0) {
						isBody = true;
						continue;
					}

					// It's a header 

					int index = data.IndexOf (":");

					if (index != -1 && !data.StartsWith (" ")) {

						if (data.Length < index +2)
							continue;
						string key = data.Substring (0, index);
						string value = data.Substring (index + 2);

						message.Headers [key] = value;

						switch (key.ToLower ()) {
						case "subject":
							message.Subject = value;
							break;
						case "from":
							message.From = value;
							break;
						case "to":
							message.To = value;
							break;
						case "date":
							message.Date = value;
							break;
						case "message-id":
							char[] shit = {'<', '>'};
							message.Id = value.Trim (shit);
							break;
						}
					}
				}
				
				hasMore = false;
			} catch (Exception e) {
				Console.WriteLine (e);
				return;
			}
		}
Exemplo n.º 2
0
        private void Read()
        {
            message      = new Message();
            message.Path = path;
            string data;
            bool   isBody = false;

            try {
                while ((data = reader.ReadLine()) != null)
                {
                    // Break for new message

                    if (data.StartsWith("From - "))
                    {
                        return;
                    }

                    // Add body to message

                    if (isBody)
                    {
                        message.AppendBody(data);
                        continue;
                    }

                    // Break for message content

                    if (data.Length == 0)
                    {
                        isBody = true;
                        continue;
                    }

                    // It's a header

                    int index = data.IndexOf(":");

                    if (index != -1 && !data.StartsWith(" "))
                    {
                        if (data.Length < index + 2)
                        {
                            continue;
                        }
                        string key   = data.Substring(0, index);
                        string value = data.Substring(index + 2);

                        message.Headers [key] = value;

                        switch (key.ToLower())
                        {
                        case "subject":
                            message.Subject = value;
                            break;

                        case "from":
                            message.From = value;
                            break;

                        case "to":
                            message.To = value;
                            break;

                        case "date":
                            message.Date = value;
                            break;

                        case "message-id":
                            char[] shit = { '<', '>' };
                            message.Id = value.Trim(shit);
                            break;
                        }
                    }
                }

                hasMore = false;
            } catch (Exception e) {
                Console.WriteLine(e);
                return;
            }
        }