private EmailDetails GetEmailDetails(string viewName, EmailMetadata metadata, ControllerContext context)
		{
			using(var stream = _viewReader.GetViewStream(viewName, metadata, context))
			{
				string subject = "";
				string body = "";

				using(var reader = new StreamReader(stream))
				{
					bool subjectProcessed = false;
					string line;
					while((line = reader.ReadLine()) != null)
					{
						if(!subjectProcessed)
						{
							if(string.IsNullOrEmpty(line))
							{
								continue;
							}

							subject = line;
							subjectProcessed = true;
							continue;
						}
						body += line;
					}
				}

				return new EmailDetails {Body = body, Subject = subject};
			}
		}
		public MailMessage RenderMessage(string viewName, EmailMetadata metadata, ControllerContext context)
		{
			var details = GetEmailDetails(viewName, metadata, context);

			var result = new MailMessage
			{From = metadata.From, Subject = details.Subject, Body = details.Body, IsBodyHtml = metadata.IsHtmlEmail};
			metadata.To.ForEach(x => result.To.Add(x));
			metadata.Cc.ForEach(x => result.CC.Add(x));
			metadata.Bcc.ForEach(x => result.Bcc.Add(x));

			return result;
		}