2013-12-02 4 views
0

Я использовал шаблон Html для отправки почты в этом HTML-шаблоне Я использовал таблицу в таблице для отправки почты Все работает Хорошо, но я получаю html в этом формате enter image description hereДля отправки шаблона Html в почте, итерации Только вторая таблица в html

и как я хочу, как это enter image description here

Мой C# код для создания сайтов почта

var TemplatePath = userDetail.UserTypeTemplate.EmailTemplatePath; 
       toEmail = userDetail.Email; 
       fromEmail = ConfigurationManager.AppSettings["AdminMail"]; 
       var sbMail = new StringBuilder(); 
       sbMail.Replace("{Name}", userDetail.Name); 
       sbMail.Replace("{CurrentDate}", currentDateTime.ToString("d")); 
       foreach (var tender in userTenders) 
       { 
        using (var sReader = new StreamReader(TemplatePath)) 
        { 
         sbMail.Append(sReader.ReadToEnd()); 
         sbMail.Replace("{TenderTitle}", tender.TenderTitle); 
         sbMail.Replace("{TenderID}", tender.TenderID.ToString()); 
         sbMail.Replace("{TenderType}", tender.TenderTypeName); 
         sbMail.Replace("{TenderValue}", tender.TenderValue.ToString("₹ 0,0", InCulture)); 
         sbMail.Replace("{TenderEMD}", tender.TenderEMD); 
         sbMail.Replace("{Location}", tender.Location); 
         sbMail.Replace("{OrgName}", tender.OrgName); 
         sbMail.Replace("{LastDateForSubmission}", tender.LastDateForSubmission.ToString("d")); 
         sbMail.Replace("{SubProductCatName}", tender.SubProductCatName); 
         sbMail.Append("<br />"); 
        } 
       } 

главная проблема, когда я использую .Привернуть с названием это Start s Повторяющаяся вся таблица и, когда я использую этот метод .Привернуть вне цикла Foreach он не читает имя Может кто-то помочь Plz .... Спасибо, Вишало

ответ

0

Наконец я решил, добавив 3 шаблона HTML читать заголовок и нижний колонтитул только один раз и перебирать в Центре содержания мой код Как

   var TemplatePath = userDetail.UserTypeTemplate.EmailTemplatePath; 
       var HeaderTemplateForPaidUser = ConfigurationManager.AppSettings["HeaderTemplateForPaidUser"]; 
       var FooterTemplateForPaidUser = ConfigurationManager.AppSettings["FooterTemplateForPaidUser"]; 
       toEmail = userDetail.Email; 
       fromEmail = ConfigurationManager.AppSettings["AdminMail"]; 
       var sbMail = new StringBuilder(); 
       using (var sReader = new StreamReader(HeaderTemplateForPaidUser)) 
       { 
        sbMail.Append(sReader.ReadToEnd()); 
        sbMail.Replace("{Name}", userDetail.Name); 
        sbMail.Replace("{CurrentDate}", currentDate.ToString("D")); 
       } 

       foreach (var tender in userTenders) 
       { 
        using (var sReader = new StreamReader(TemplatePath)) 
        { 
         sbMail.Append(sReader.ReadToEnd()); 
         sbMail.Replace("{TenderTitle}", tender.TenderTitle); 
         sbMail.Replace("{TenderID}", tender.TenderID.ToString("####")); 
         sbMail.Replace("{TenderType}", tender.TenderTypeName); 
         sbMail.Replace("{TenderValue}", tender.TenderValue.ToString("₹ 0,0", InCulture)); 

         sbMail.Append("<br />"); 
        } 
       } 

       using (var sReader = new StreamReader(FooterTemplateForPaidUser)) 
       { 
        sbMail.Append(sReader.ReadToEnd()); 
       } 
+0

Извините, не заметил нижний колонтитул в моем первом ответе. Рад, что ты понял, что один из них. – Zaphod

1

Я считаю, что ваш шаблон не подходит для того, что вы пытаетесь достигать. Я предполагаю, что ваш шаблон содержит информацию о заголовке (имя и дата) и одну запись для тендера. Когда вы читаете весь шаблон каждый раз, когда вы повторяете имя и дату, а также записи тендера.

Что вам нужно сделать, это иметь один шаблон для информации заголовка (имя и дата) и один шаблон для тендерных записей. Что-то вроде этого псевдокода:

var TemplatePath = userDetail.UserTypeTemplate.EmailTemplatePath; 
var headerTemplate = userDetail.UserTypeTemplate.EmailHeaderTemplatePath; 
       toEmail = userDetail.Email; 
       fromEmail = ConfigurationManager.AppSettings["AdminMail"]; 
       var sbMail = new StringBuilder(); 
       using (var sReader = new StreamReader(headerTemplate)) 
       { 
        sbMail.Append(sReader.ReadToEnd()); 
        sbMail.Replace("{Name}", userDetail.Name); 
        sbMail.Replace("{CurrentDate}", currentDateTime.ToString("d")); 
       } 

       foreach (var tender in userTenders) 
       { 
        using (var sReader = new StreamReader(TemplatePath)) 
        { 
         sbMail.Append(sReader.ReadToEnd()); 
         sbMail.Replace("{TenderTitle}", tender.TenderTitle); 
         sbMail.Replace("{TenderID}", tender.TenderID.ToString()); 
         sbMail.Replace("{TenderType}", tender.TenderTypeName); 
         sbMail.Replace("{TenderValue}", tender.TenderValue.ToString("₹ 0,0", InCulture)); 
         sbMail.Replace("{TenderEMD}", tender.TenderEMD); 
         sbMail.Replace("{Location}", tender.Location); 
         sbMail.Replace("{OrgName}", tender.OrgName); 
         sbMail.Replace("{LastDateForSubmission}", tender.LastDateForSubmission.ToString("d")); 
         sbMail.Replace("{SubProductCatName}", tender.SubProductCatName); 
         sbMail.Append("<br />"); 
        } 
       } 

Это позволит вам сделать одну запись заголовка и столько ласковые записей, как вам нужно ..

+0

Thnx @Zaphod вы сохраните свою жизнь –

+0

Great я могу помочь. Пожалуйста, отметьте вопрос как ответ, если это решит его для вас. – Zaphod

Смежные вопросы