PDA

View Full Version : سوال: ارسال متن ایمیل به emailهای ثبت شده در database



batman1
چهارشنبه 19 اسفند 1394, 12:57 عصر
سلام به همه.
دوستان،من برنامه ای میخوام بنویسم که وقتی برروی دکمه کلیک شد،متنی رو که در یک جعبه متن نوشته شده رو به همه ایمیل هایی که در جدول دیتابیس ثبت هست،بفرسته.
ممنون میشم راهنماییم کنید.

batman1
پنج شنبه 20 اسفند 1394, 03:03 صبح
ممنون میشم یکی جواب منو بده،لطفا.

کامبیز اسدزاده
پنج شنبه 20 اسفند 1394, 04:13 صبح
سلام

یه سری کارها لازمه اول از همه اینکه بتونی کوئری بنویسی که بر اساس یک کلید خاصی آدرس ایمیل های موجود رو بگیره و اونها رو در لیستی قرار بده تا بتونی ازشون استفاده کنی.
مورد بعدی اینکه برای ارسال به صورت گروهی به صورت عادی نمیتونی سرویس دهی کنی! مگر اینکه از سرور های مخصوص ایمیل مارکتینگ استفاده کنی در حالت عادی سرور ها این اجازه رو نمیدن و بیشتر از ۱۰ عدد ایمیل همزمان نمیتونید ارسال کنید.
مورد سوم هم اینکه باید از Thread ها نیز استفاده کنید و یه سری موارد دیگه هم لازم خواهد بود که در حین کار باهاشون مواجه خواهید شد.

rezashaban
پنج شنبه 20 اسفند 1394, 04:32 صبح
MailMessage msg =new MailMessage();
msg.Body=....;
//برای اضافه کردن موارد میتونی از حلقه استفاده کنی
msg.To.Add(...);
msg.To.Add(...);

SmtpClient smtp =newSmtpClient();
smtp.Send(msg);

batman1
پنج شنبه 20 اسفند 1394, 04:45 صبح
سلام

یه سری کارها لازمه اول از همه اینکه بتونی کوئری بنویسی که بر اساس یک کلید خاصی آدرس ایمیل های موجود رو بگیره و اونها رو در لیستی قرار بده تا بتونی ازشون استفاده کنی.
مورد بعدی اینکه برای ارسال به صورت گروهی به صورت عادی نمیتونی سرویس دهی کنی! مگر اینکه از سرور های مخصوص ایمیل مارکتینگ استفاده کنی در حالت عادی سرور ها این اجازه رو نمیدن و بیشتر از ۱۰ عدد ایمیل همزمان نمیتونید ارسال کنید.
مورد سوم هم اینکه باید از Thread ها نیز استفاده کنید و یه سری موارد دیگه هم لازم خواهد بود که در حین کار باهاشون مواجه خواهید شد.

عزیزجان،میفهمم چی میگی:
private void btnSend_Click(object sender, EventArgs e)
{
var query = db.TBLEmails.Where(x => x.Email != 0.ToString()).SingleOrDefault();
foreach (var item in query)
{

}

try
{
if (MessageBox.Show("آیا ایمیل ارسال شود؟", "هشدار", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
{
string str_name = txtName.Text;
string str_to_address = txtTo.Text;
MailMessage email_msg = new MailMessage();
email_msg.From = new MailAddress(str_name);
email_msg.Sender = new MailAddress(str_name);
email_msg.To.Add(str_to_address);
email_msg.Body = txtBody.Text;
email_msg.Subject = txtSubject.Text;
email_msg.IsBodyHtml = true;
SmtpClient mail_client = new SmtpClient();
NetworkCredential network_cdr = new NetworkCredential();
network_cdr.UserName = "info@mfeg.ir";
network_cdr.Password = txtPassword.Text;
mail_client.Credentials = network_cdr;
mail_client.Port = 587;
mail_client.Host = "SMTP.GMAIL.COM";
mail_client.EnableSsl = true;
mail_client.Send(email_msg);
Console.Beep(1000, 1000);
MessageBox.Show("ایمیل با موفقیت ارسال شد", "هشدار", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtName.Text = string.Empty;
txtSubject.Text = string.Empty;
txtBody.Text = string.Empty;
txtTo.Text = string.Empty;
txtPassword.Text = string.Empty;
txtName.Focus();
}
}
catch
{
MessageBox.Show("لطفا همه جعبه متن ها را پر کنید", "ناقص بودن اطلاعات", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtName.Focus();
}
}

این،الان کل چیزایی هست که من از ایمیل میدونم......حال اصلا این درسته و اون کوئری که نوشتم،درسته؟
دقت کنید که:

x=>x.Email!=0
همون فیلدیه که یک سری ایمیل درش قرار داره.
حالا باید چی کار کنم؟!
ممنون.

batman1
پنج شنبه 20 اسفند 1394, 09:46 صبح
دوستان،ممنون میشم یکی جواب منو بده.