PDA

View Full Version : سوال: ارسال يك فايل HTML در بدنه ايميل



AmirGhasemi
شنبه 04 شهریور 1391, 15:30 عصر
سلام بر همه دوستان و سروران و اساتيد بزرگوار!
دوستان، بنده يك كلاس نوشته ام براي ارسال ايميل كه نشاني گيرنده و موضوع و محتوا را مي گيرد و آن را ارسال مي كند! تا اينجا همه چيز درست و خوبه و مشكلي هم نيست!!
اگه بخواهم در body ايميلم متن ساده Text باشد همه چيز عاليه و مشكلي هم نيست اما....
اما اگه يخواهم در body ايميل يك فايل HTML بفرستم مثلا يك عكس يا يك لينك ساده يا url يك وب سايت و امثالهم ايميل ارسال مي شود ان طرف هم مي گرد اما بدنه ايميل خالي است!! يعني يك ايميل خالي ارسال مي كند!
دوستان منتظرم تا با حواب هاي دندان شكن(:چشمک:) خودتان به من هم چيزي ياد بدهيد!!
يا علي

Mahmoud.Afrad
شنبه 04 شهریور 1391, 15:53 عصر
بدنه ایمیل را به عنوان html معرفی کن System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();
mm.IsBodyHtml = true;
//...

AmirGhasemi
شنبه 04 شهریور 1391, 16:13 عصر
دوست عزيز من اينكارو قبلاا كرده بودم منتها باز هم نمي شه
قطعه كدم را برايت گذاشتم اگه نگاهي بهش بندازي ممنون مي شوم
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Libraries
{
public static class Email
{
/// <summary>
/// متد اصلاج الگوي متن ايميل
/// </summary>
/// <param name="strMessage">متن ايميل</param>
/// <returns>متن اصلاح شده</returns>
public static string ConvertTextForEmailBody(string strMessage)
{
strMessage = strMessage.Replace(System.Convert.ToChar(13).ToStr ing(), "<br />"); //return Enter Key
strMessage = strMessage.Replace(System.Convert.ToChar(10).ToStr ing(), "<br />"); //return Key
strMessage = strMessage.Replace(System.Convert.ToChar(9).ToStri ng(), "&nbsp;&nbsp;&nbsp;&nbsp;>"); //return TAB Key
return (strMessage);
}

/// <summary>
///
/// </summary>
/// <param name="sender">ايميل فرستنده</param>
/// <param name="Password">كلمه عبور فرستنده</param>
/// <param name="SMTPHost">SMTP Host</param>
/// <param name="SMTPPort">SMTP Port</param>
/// <param name="DisplayName">نام نمايشي</param>
/// <param name="recipient">گيرنده</param>
/// <param name="subject">موضوع</param>
/// <param name="body">متن ايميل</param>
/// <returns></returns>
public static int Send(
string sender,
string EmailPassword,
string SMTPHost,
int SMTPPort,
string DisplayName,
string recipient,
string subject,
string body
)
{
int intStatus;
// 0:وضعيت فرستنده مشخص نيست
//1 : ارسال با موفقيت انجام شد
//2: ارسال ناموفق بود
try
{
// *************************** MailMessage & MailAddress Configuration **********
if (DisplayName == string.Empty)
{
DisplayName = sender;
}
System.Net.Mail.MailAddress oMialAddress = new System.Net.Mail.MailAddress(sender, DisplayName, System.Text.Encoding.UTF8);
System.Net.Mail.MailMessage oMailMessage = new System.Net.Mail.MailMessage();
oMailMessage.From = oMialAddress;
oMailMessage.Sender = oMialAddress;
oMailMessage.ReplyTo = oMialAddress;
oMailMessage.To.Clear();
oMailMessage.CC.Clear();
oMailMessage.Bcc.Clear();
oMailMessage.Attachments.Clear();
if (recipient == string.Empty)
{
intStatus = 0;
return (intStatus);
}
else
{
oMailMessage.To.Add(recipient);
}

if (subject == string.Empty)
{
oMailMessage.Subject = "No Subject";
}
else
{
oMailMessage.Subject = subject;
}
oMailMessage.IsBodyHtml = true;
oMailMessage.SubjectEncoding = System.Text.Encoding.UTF8;
oMailMessage.Body = body;
// ************************************************** *********
// *************************** SMTP Configuration **********
System.Net.Mail.SmtpClient oSmtpClient = new System.Net.Mail.SmtpClient();
oSmtpClient.EnableSsl = true;
int intSmtpClientTimeOut = 100000000;
oSmtpClient.Timeout = intSmtpClientTimeOut;
oSmtpClient.UseDefaultCredentials = false;
oSmtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
oSmtpClient.Host = SMTPHost;
//int intSmtpPortNumbr = SMTPPort;
//string strSenderEmailPassword = EmailPassword;
oSmtpClient.Port = SMTPPort;
System.Net.NetworkCredential oNetworkCredential =
new System.Net.NetworkCredential(sender, EmailPassword);
oSmtpClient.Credentials = oNetworkCredential;
oSmtpClient.Send(oMailMessage);
// ************************************************** *********
intStatus = 1;
return (intStatus);

}
catch (Exception ex)
{
intStatus = 2;
return (intStatus);
throw ex;
}
}
}
}