PDA

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



mgupload
جمعه 06 شهریور 1394, 09:55 صبح
سلام من یه کد نوشتم که با اون بتونم ایمیل بفرستم ( Gmail ، Yahoo و Hotmail )

یه اشکال وجود داره : از ایمیل Yahoo و Hotmail نمیتونم ایمیل بفرستم! کد به صورت زیر هست:


bool SendOK = false; ;
if (Email_Username.Text != "" && Email_Domain.Text != "" && Email_Password.Text != "" && Subject_TXT.Text != "" && Message_TXT.Text != "")
{
MailMessage Email = new MailMessage();
Email.From = new MailAddress(Email_Username.Text + "@" + Email_Domain.Text);
Email.Subject = Subject_TXT.Text;
Email.Body = Message_TXT.Text;
Email.Priority = MailPriority.High;
if (HTMLTrue)
{
Email.IsBodyHtml = true;
}
else
{
Email.IsBodyHtml = false;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////Google
SmtpClient SMTP;
SMTP = new SmtpClient("smtp.gmail.com");
SMTP.Port = 587;
SMTP.UseDefaultCredentials = false;
SMTP.EnableSsl = true;
SMTP.Credentials = new NetworkCredential(Email_Username.Text + "@" + Email_Domain.Text, Email_Password.Text);
if (Email_Domain.Text == "Yahoo.com" || Email_Domain.Text == "Ymail.com")//////////////////////////////Yahoo
{
SMTP = new SmtpClient("smtp.mail.yahoo.com");
SMTP.Port = 587;
}
else
{
if (Email_Domain.Text == "Outlook.com" || Email_Domain.Text == "Hotmail.com")
{
SMTP = new SmtpClient("smtp.live.com");
SMTP.Port = 587;
}
}
if (!ToEmailFileTrue)
{
///////////////////////////////////////////////////////////////////////////////////////////Email Address
if (ToEmailAddress_TXT.Text != "")
{
Email.To.Add(ToEmailAddress_TXT.Text);
try
{
SMTP.Send(Email);
SendOK = true;
MessageBox.Show("Email successfully sended");
}
catch { }
if (!SendOK)
{
MessageBox.Show("Error occur");
}
}
else
{
MessageBox.Show("Please Inpute Data!");
}
}
else
{
/////////////////////////////////////////////////////////////////////////////////////////////Emails File
if (Open.ShowDialog() != DialogResult.Cancel)
{
System.IO.StreamReader RF = System.IO.File.OpenText(Open.FileName);
Emails.Text = RF.ReadToEnd();
RF.Close();
}
int array = 0;
while (Emails.Lines[array].ToString() != ";")
{
Email.To.Add(Emails.Lines[array].ToString());
try
{
SMTP.Send(Email);
SendOK = true;
}
catch { }
if (!SendOK)
{
MessageBox.Show("Error occur in send to " + Emails.Lines[array].ToString());
}
array = array + 1;
}
}
}
else
{
MessageBox.Show("Please Inpute Data!");
}


من SMTp رو اینطوری نوشتم :

//////////////////////////////////////////////////////////////////////////////////////////////////////Google
SmtpClient SMTP;
SMTP = new SmtpClient("smtp.gmail.com");
SMTP.Port = 587;
SMTP.UseDefaultCredentials = false;
SMTP.EnableSsl = true;
SMTP.Credentials = new NetworkCredential(Email_Username.Text + "@" + Email_Domain.Text, Email_Password.Text);
if (Email_Domain.Text == "Yahoo.com" || Email_Domain.Text == "Ymail.com")//////////////////////////////Yahoo
{
SMTP = new SmtpClient("smtp.mail.yahoo.com");
SMTP.Port = 587;
}
else
{
if (Email_Domain.Text == "Outlook.com" || Email_Domain.Text == "Hotmail.com")
{
SMTP = new SmtpClient("smtp.live.com");
SMTP.Port = 587;
}
}

دلتنگ اسمان
جمعه 06 شهریور 1394, 10:46 صبح
با سلام
کد برای یاهومیل :

////////////////////////yahoo mail
try
{
string email = "Mail@yahoo.com";
System.Net.Mail.MailMessage ms = new System.Net.Mail.MailMessage();
ms.From = new System.Net.Mail.MailAddress(email);
ms.To.Add("Mail@gmail.com");
ms.Subject = "عنوان ایمیل";
ms.Body = "متن ایمیل";
System.Net.Mail.SmtpClient sm = new System.Net.Mail.SmtpClient("plus.smtp.mail.yahoo.c om")
{
Credentials = new NetworkCredential(email, "YahoomailPassword"),
EnableSsl = true
};
sm.Send(ms);
MessageBox.Show("ارسال شد");
}
catch (Exception ex)
{
MessageBox.Show("خطا در ارسال ایمیل");
}

mgupload
شنبه 07 شهریور 1394, 22:20 عصر
خیلی ممنون

این کد را به صورت جداگانه در برنامه اجرا می کنم بدون مشکل به یاهو ارسال میکنم

ولی وقتی در برنامه خودم قرار دادم، به مشکل بر میخورد

mgupload
یک شنبه 08 شهریور 1394, 08:50 صبح
فک کنم اگه اطلاعات مربوط به سرور ها رو در فرم های جداگانه بسازم بهتر عمل میکنه

سوال : اطلاعات ساخته شده در Form1 مثل Textbox و متغییر ها را چگونه در فرهم های دیگری مثل Form2 تعریف کنم؟

Form1 ( برای دریافت اطلاعاتی مثل ایمیل فرستنده و گیرنده و متغیرهای دیگر)

Form2 Form3 و ... ( برای ارسال با یاهو جیمیل و هات میل )

این سوال را در تاپیک زیر سوال کرده بودم ( فراخوانی متغیر های یک فرم به فرم دیگر ) ولی متاسفانه حذف شده! و اینجا نوشتم:
لینک (http://barnamenevis.org/showthread.php?506453-%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C-%D9%85%D8%AA%D9%82%DB%8C%D8%B1-%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D9%81%D8%B1%D9%85-%D8%A8%D9%87-%D9%81%D8%B1%D9%85-%D8%AF%DB%8C%DA%AF%D8%B1&p=2258112#post2258112)

mgupload
چهارشنبه 11 شهریور 1394, 19:08 عصر
فک کنم اگه اطلاعات مربوط به سرور ها رو در فرم های جداگانه بسازم بهتر عمل میکنه


سوال : اطلاعات ساخته شده در Form1 مثل Textbox و متغییر ها را چگونه در فرهم های دیگری مثل Form2 تعریف کنم؟
Form1 ( برای دریافت اطلاعاتی مثل ایمیل فرستنده و گیرنده و متغیرهای دیگر)


Form2 Form3 و ... ( برای ارسال با یاهو جیمیل و هات میل )


این سوال را در تاپیک زیر سوال کرده بودم ( فراخوانی متغیر های یک فرم به فرم دیگر ) ولی متاسفانه حذف شده! و اینجا نوشتم:
لینک


یک فرم جدید به نام MyForm2 میسازیم ( فرض میکنیم فرم اول ما Form1 است)


در فرم اول (Form1) مینویسیم



MyForm2 NameForm = new MyForm2(Value.Text,Emails.Text);
this.Hide();
NameForm.ShowDialog();
this.Close();



خط اول تعریف فرم جدید (MyForm2) با نام NameForm است
پارامترهایی که نیاز داریم در فرم جدید از آن استفاده شود را نیز مینویسیم


خط دوم مربوط به پنهان کردن فرم اول است ( متوانیم این کد را ننویسیم )


خط سوم مربوط به نمایش فرم جدید است به طوریکه زمانی که فرم جدید فعال است نمیتوانیم با فرم اول خود کار کنیم


خط آخر برای زمانی است که وقتی کار با فرم جدید تمام شد و فرم جدید را بستیم فرم اول ما هم بسته شود ( اگر فرم اصلی برنامه باشد با این کد کل برنامه بسته خواهد شد بنابراین بسته به نیاز خود میتوانیم این کد را بنویسیم یا ننویسیم)


-----------------


اکنون در فرم جدید خود
ابتدا تعدادی text box ( مثلا ValueTXT.Text و EmailsTXT.Text) به تعداد پارامترهایی که از فرم اول خود میخواهیم بخوانیم
و سپس کد های زیر را بنویسید



public Google(string Value,String Emails)
{
InitializeComponent();
ValueTXT.Text = Value;
EmailsTXT.Text = Emails;
}