PDA

View Full Version : سوال: ارسال ایمیل گروهی



niloofar1234
سه شنبه 26 فروردین 1393, 17:48 عصر
سلام دوستان.
اگه کسی سورس کامل ارسال پیام گروهی رو با استفاده از دیتابیس دارد واسم بزاره یا بگه چه جوری از کوئری در قسمت for استفاده کنم. :گریه::ناراحت:

kohyar
سه شنبه 26 فروردین 1393, 19:40 عصر
الان دقیقاًً مشکلت در کد ارسال ایمیل هستش یا ارسال گروهی؟
اگر تو کد ارسال ایمیل مشکلی نداری واسه ارسال گروهی کافیه یک کوئری بزنی از دیتابیس و آدرس ایمیل ها رو تو یک دیتا تیبل برگردونی . بعد با یک حلقه For Each یکی یکی آدرس ایمیل ها رو می خونی و عملیات ارسال ایمیل رو انجام میدی

niloofar1234
سه شنبه 26 فروردین 1393, 22:26 عصر
اصلا بلد نيستم که ديتا تيبل جيه و کجاست,اکر امکان داره بهم واضح توضيح بديد جکار کنم,يک هفتس دنبالشم

masoud60
چهارشنبه 27 فروردین 1393, 08:34 صبح
سلام روش ارسال ایمیل بصورت کد زیر هست.

MailMessage mail = new MailMessage();
mail.From = new MailAddress("آدرس ايميل شما", "عنوان ايميل", System.Text.Encoding.GetEncoding("windows-1256"));
mail.To.Add("آدرس ايميل گيرنده");
mail.Subject = txtSubject.Text;
mail.Body = txtBody.Text;
mail.BodyEncoding = System.Text.Encoding.UTF8;


objEmail.EmailFrom = mail.From.ToString();
objEmail.EmailTo = mail.To.ToString();
objEmail.EmailSubject = mail.Subject.ToString();
objEmail.EmailBody = mail.Body.ToString();

SmtpClient smtp = new SmtpClient("آدرس سرور ايميل");
smtp.Credentials = new NetworkCredential("آدرس ايميل شما", PassWord);

smtp.Send(mail);




------------------------
http://www.kohan-co.net

masoud60
چهارشنبه 27 فروردین 1393, 08:50 صبح
برای ارسال گروهی باید ابتدا یه کوئری بگیرید از دیتابیس و نتیجه رو به یک datatable بریزید بعد کد بالا رو در حلقه زیر استفاده کنید

datatable dt = new datatable();
for(int i=0;i <dt.row.count;i++)
{
Your Code
be jaye adress girande az dt.row[i]["email"] estefade konid
{

------------------------
http://www.kohan-co.net

niloofar1234
چهارشنبه 27 فروردین 1393, 10:44 صبح
سلام
از row.count خطا می گیره.چون اصلا با دیتا تیبل کار نکردم خیلی گیج شدم
اگر امکانش هست میشه یه نمونه مثال که اجرا بشه با کدش رو برام لینک بذاری؟ الان خیلی گیج شدم.وقتی ام دیگه ندارم.ممنون میشم:گریه::گریه:

masoud60
چهارشنبه 27 فروردین 1393, 11:26 صبح
سلام
از row.count خطا می گیره.چون اصلا با دیتا تیبل کار نکردم خیلی گیج شدم
اگر امکانش هست میشه یه نمونه مثال که اجرا بشه با کدش رو برام لینک بذاری؟ الان خیلی گیج شدم.وقتی ام دیگه ندارم.ممنون میشم:گریه::گریه:

شما باید اطلاعات رو با یه کوئری استخراج کنید و datatable رو پر کنید. اگر کلا بلد نیستید هم مرحله به مرحله جستجو کنید به نتیجه میرسید

نمونه کد استخراج اطلاعات

SqlConnection conn = new SqlConnection("connString");
SqlCommand cmd = new SqlCommand(query, conn);
DataTable dt = new DataTable();
conn.Open();

// create data adapter
SqlDataAdapter da = new SqlDataAdapter(cmd);
// this will query your database and return the result to your datatable
da.Fill(dt);
conn.Close();
da.Dispose();


C# به بزرگی حروف حساسه dt.Row.Count . خطای مربوطه رو اینجا بزارید.


------------------------
http://www.kohan-co.net

niloofar1234
چهارشنبه 27 فروردین 1393, 12:09 عصر
lمیشه بگید error اش چیه؟ از خطی که highlight شده اشکال میگیره و Failur میده








//region اطلاعات <span class="highlight">ایمیل</span>
public DataTable All_Email()
{
String conString = ConfigurationManager.ConnectionStrings["VirtualLearningConnectionString"].ToString();
SqlConnection con = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT Email from T_User";
con.Open();

SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();

da.Fill(dt);
con.Close();
return dt;
}
//endregion




protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{


DataTable dt2 = All_Email();
int ce = All_Email().Rows.Count;


MailMessage mail = new MailMessage();
for (int b = 1; b < ce; b++)
{

mail.From = new MailAddress("dezvareh_2008@yahoo.com", "fff", System.Text.Encoding.GetEncoding("windows-1256"));
mail.To.Add(dt2.Rows[b]["email"].ToString());

mail.BodyEncoding = System.Text.Encoding.UTF8;

string msg = TextBox1.Text;
string sub = TextBox2.Text;
mail.Body = msg;
mail.Subject = sub;
mail.BodyEncoding = Encoding.UTF8;
mail.SubjectEncoding = Encoding.UTF8;
mail.IsBodyHtml = true;

SmtpClient smtp = new SmtpClient();
smtp.Host = "yahoo.com";

smtp.Send(mail);
}

}

masoud60
چهارشنبه 27 فروردین 1393, 12:40 عصر
اولا رمز عبور خودتون رو از تاپیک حذف کنید
دوما این خطا بخاطر درست نبودن آدرس mail server هست. فکر میکنم smtp.mail.yahoo.com باشه.
اگه باز هم خطا داد دنبال آدرس yahoo smtp server بگردید


-----------------------
http://www.kohan-co.net

niloofar1234
چهارشنبه 27 فروردین 1393, 14:38 عصر
ادرس mail server همینه که شما گفتید اما بازهم error داد
کسی میدونه مشکلش چیه؟


DataTable dt2 = All_Email();
int ce = All_Email().Rows.Count;


MailMessage mail = new MailMessage();
for (int b = 1; b < ce; b++)
{

mail.From = new MailAddress("dezvareh_2008@yahoo.com", "fff", System.Text.Encoding.GetEncoding("windows-1256"));
mail.To.Add(dt2.Rows[b]["email"].ToString());

mail.BodyEncoding = System.Text.Encoding.UTF8;

string msg = TextBox1.Text;
string sub = TextBox2.Text;
mail.Body = msg;
mail.Subject = sub;
mail.BodyEncoding = Encoding.UTF8;
mail.SubjectEncoding = Encoding.UTF8;
mail.IsBodyHtml = true;

SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.mail.yahoo.com";
smtp.Port = 587;
smtp.Send(mail);
}

masoud60
چهارشنبه 27 فروردین 1393, 15:29 عصر
خطا چیه؟
از پورت 465 استفاده کنید و smtp.EnableSsl قبل از send برابر true کنید

------------------------------
http://www.kohan-co.net

niloofar1234
چهارشنبه 27 فروردین 1393, 17:34 عصر
خطا اینه
Unable to read data from the transport connection: net_io_connectionclosed.

masoud60
شنبه 30 فروردین 1393, 10:05 صبح
کدوم خط این خطا رو میده؟ اگه امکانش هست سورس کد بفرستید. این خطا بمعنای این هست که سرور smtp رو پیدا نمیکنه یا ادرس غلطه یا پورت و یا اینکه شما دسترسی به این کار رو ندارید


------------------------------
http://www.kohan-co.net

niloofar1234
شنبه 30 فروردین 1393, 12:20 عصر
سلام
زمانی که به خط smtp.send(mail) میرسه برنامه قطع شده و پیغام Failure sending mail. رو میده
وقتی هم که برنامه رو قطع می کنم این پیغام رو میده

Unable to read data from the transport connection: net_io_connectionclosed. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.IOException: Unable to read data from the transport connection: net_io_connectionclosed.

Source Error:



Line 101: smtp.Port = 465;
Line 102: //smtp.EnableSsl = true;
Line 103: smtp.Send(mail);
Line 104: }
Line 105:






اینم سورس کامل



//region اطلاعات <span class="highlight">ایمیل</span>
public DataTable All_Email()
{
String conString = ConfigurationManager.ConnectionStrings["VirtualLearningConnectionString"].ToString();
SqlConnection con = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT Email from T_User";
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
return dt;
}
//endregion




protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{


DataTable dt2 = All_Email();
int ce = All_Email().Rows.Count;


MailMessage mail = new MailMessage();
for (int b = 1; b < ce; b++)
{

mail.From = new MailAddress("dezvareh_2008@yahoo.com", "fff", System.Text.Encoding.GetEncoding("windows-1256"));
mail.To.Add(dt2.Rows[b]["email"].ToString());

mail.BodyEncoding = System.Text.Encoding.UTF8;

string msg = TextBox1.Text;
string sub = TextBox2.Text;
mail.Body = msg;
mail.Subject = sub;
mail.BodyEncoding = Encoding.UTF8;
mail.SubjectEncoding = Encoding.UTF8;
mail.IsBodyHtml = true;

SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.mail.yahoo.com";
smtp.Port = 465;
smtp.EnableSsl = true;
smtp.Send(mail);
}

}

masoud60
شنبه 30 فروردین 1393, 12:36 عصر
smtp.EnableSsl = false رو تست کنید و یکبار هم با پورت 25 تست نمائید و بعد از دستور enabel این کد رو هم اضافه کنید

smtp.Credentials = new System.Net.NetworkCredential("username", "psw");

smtp.ServicePoint.MaxIdleTime = 1;

------------------------------
http://www.kohan-co.net