PDA

View Full Version : یک سوال در مورد email



peymannaji
جمعه 21 تیر 1387, 01:42 صبح
با سلام

من یک فرم طولانی دارم و در نهایت این اطلاعات باید توسط کاربر پر و ارسال بشه .
از اونجایی که این فرم طولانی هست کد جنریت شده Html اون هم بسیار طویل هست بنابراین قرار دادن متغیر ها لابه لایه این کدها یک مقداری مشکل است . آیا میشه خود صفحه رو با اطلاعاتی که فرد درون فیلدها وارد کرده و یا چک باکس هایی که انتخاب شده رو به ایمیل مورد نظر فرستاد ؟ و آیا راه بهتری شما میدونید ؟

با تشکر

msakbari
جمعه 21 تیر 1387, 02:08 صبح
من پیشنهاد می کنم یه فایل html بسازید که در واقع email template شماست و مقادیری که توی این صفحه دارید رو با یک عنوان خاص بنویسید . مثلا بجای مقدار نام بنویسید #name# .
حالا وقتی کاربر فرم رو پر می کنه این فایل رو لود کنید مقادیر را در آن replace کنید .

موفق باشی.

peymannaji
جمعه 21 تیر 1387, 02:21 صبح
ممنون دوست عزیز . این روش رو تاحالا تجربه نکردم اما فایل html رو ساختم . از اینجا به بعدش رو اگر میشه یک مثالی بزنید و اینکه طریقه خوندن و replace کردن به چه گونه هست ؟

تا اون قسمت اول فرمایش شما فکر کنم به این صورت باید پیاده بشه آیا درسته ؟


<tr>
<td>
<p dir="rtl">#Name#</td>
<td width="102">
<p dir="rtl"> :</td>
</tr>
<tr>
<td>
<p align="right"><span lang="fa">#LastName#</span></td>
<td width="102">
<p dir="rtl">نام خانوادگی :</span></td>
</tr>

msakbari
جمعه 21 تیر 1387, 02:35 صبح
بله آقرین .
اینهم نمونه از ارسال کارت پستال که در سایت http://www.rasekhoon.net/postalcard استفاده شده .


public static string SendPostalCard(string PostalCard_ID, string SenderUser_FullName, string SenderUser_Email, string SenderUser_UserName, string RecipientEmail, string Recipient_FullName, string Message)
{
if (Message.Length > 200)
throw new Exception("متن پیام نباید بیش از 200 کاراکتر باشد");

if (!ISBlockedEmail(RecipientEmail))
{
DateTime DateNow = CommonClasses.General.GetCorrectDateTime(DateTime. Now);
StreamReader FReader = new StreamReader(HttpContext.Current.Server.MapPath("EmailTemplate/Template.htm"));
string EmailTemplate = FReader.ReadToEnd();
FReader.Close();

DataRow DTR_PostalCard = GetPostalCard(PostalCard_ID);
EmailTemplate = EmailTemplate.Replace("##recipient_name##", Recipient_FullName);
EmailTemplate = EmailTemplate.Replace("##sender_name##", SenderUser_FullName);
EmailTemplate = EmailTemplate.Replace("##datetime##", CommonClasses.General.GetDayofWeekDayMonthYear_Com plete(DateNow));
EmailTemplate = EmailTemplate.Replace("##sender_msg##", Message);
EmailTemplate = EmailTemplate.Replace("##image_desc##", DTR_PostalCard["Description"].ToString());
EmailTemplate = EmailTemplate.Replace("##image_path##", System.Configuration.ConfigurationManager.AppSetti ngs["SiteURLComplete"] + Config.PCard_Image_Path.Replace("../", "") + "L_" + DTR_PostalCard["PicName"].ToString());
EmailTemplate = EmailTemplate.Replace("##recipient_email##", CommonClasses.Cryptography.Encode(RecipientEmail)) ;

try
{
//Sending Email
CommonClasses.Email.SendEmail(System.Configuration .ConfigurationManager.AppSettings["SiteEmailForPostalCard"], RecipientEmail, Config.PCard_EmailSubject ,ref EmailTemplate);
}
catch (Exception Ex)
{
throw new Exception("بدلیل مشکل فنی کارت پستال ارسال نشد");
}
//Inserting Data To Table
PostalCardSystemDAL.SendPostalCard(PostalCard_ID, SenderUser_UserName, SenderUser_Email, RecipientEmail, DateNow);
return EmailTemplate;
}
else
{
throw new Exception("امکان ارسال ایمیل به پست الکترونیکی وارد شده وجود ندارد");
}
}

peymannaji
جمعه 21 تیر 1387, 10:56 صبح
با سلام خدمت دوست گرامی . از لطفتون بی نهایت ممنونم . در ضمن طراحی سایتتون بسیار عالی بود.
موفق و سربلند باشید .

msakbari
جمعه 21 تیر 1387, 15:34 عصر
مرسی . لطف داری شما .