PDA

View Full Version : ارسال ایمیل از داخل برنامه



hraeissi
جمعه 21 تیر 1392, 14:35 عصر
با سلام
آیا من میتونم در برنامه ویندوزی فرمی را قرار دهم که با زدن دکمه فرم برایم ایمیل شود
اگر امکانش است لطفاً راهنمایی کنید
ممنون

sohil_ww
جمعه 21 تیر 1392, 14:40 عصر
اره داداش می شه ارسال کرد
var stmp = new SmtpClient
{
Host = "smtp.mail.yahoo.com",
Port = 587,
EnableSsl = false,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(Ferestande.Address, pass)
};
string bo = matne name;

using (var message = new MailMessage(Ferestande, To)
{

Subject = "pass",
Body = bo
})

{
message.Attachments.Add(new Attachment(@"C:\1.txt"));
stmp.Send(message);
}

hraeissi
جمعه 21 تیر 1392, 15:03 عصر
ممنون میشه یه توضیحی دربارش بدی که داره چکار می کنه و من باید این کد را به دکمه فرم بدم یا جای دیگه
محتویات فرم چی میشه؟

sohil_ww
جمعه 21 تیر 1392, 15:04 عصر
داداش شما بگو دقیق می خوای چی کار کنی تا من کامل راهنمایت کنم
حقیقتا متوجه نشدم منظورت چیه تو فرم یا باتن ؟!

hraeissi
جمعه 21 تیر 1392, 15:13 عصر
من تازه دارم برنامه نویسی c# یاد می گیرم برای خودم یک پروژه تعریف کردم که دارم کم کم در کنار آموزشم کامل می کنم
یکی از موارد ارتباط از داخل برنامه با من است
می خوام توی برنامه یک بخشی باشه طرف بیاد داخلش فرم را پر کند و توضیحاتشو بنویسه و بعد از زدن دکمه ارسال در صورتیکه سیستم به اینترنت وصل باشه نامه ای برای من ارسال شود و در صورت عدم اتصال به اینترنت بهش پیغام عدم دسترسی به اینترنت را بدهد
امیدوارم کامل باشه

CsharpNevisi
جمعه 21 تیر 1392, 15:55 عصر
من تازه دارم برنامه نویسی C#‎ یاد می گیرم برای خودم یک پروژه تعریف کردم که دارم کم کم در کنار آموزشم کامل می کنم
یکی از موارد ارتباط از داخل برنامه با من است
می خوام توی برنامه یک بخشی باشه طرف بیاد داخلش فرم را پر کند و توضیحاتشو بنویسه و بعد از زدن دکمه ارسال در صورتیکه سیستم به اینترنت وصل باشه نامه ای برای من ارسال شود و در صورت عدم اتصال به اینترنت بهش پیغام عدم دسترسی به اینترنت را بدهد
امیدوارم کامل باشه

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

try
{
//for (int i = 0; i <= 5; i++)
//{
MailAddress from = new MailAddress("ادرس جیمیلت", "MHsoft", Encoding.UTF8);
MailMessage msg = new MailMessage();
MailAddress to = new MailAddress(txtTo.Text);
MailAddress Cc = new MailAddress(txtCC.Text);
MailAddress Bcc = new MailAddress(txtBCC.Text);
SmtpClient smtp = new SmtpClient();
msg.Bcc.Add(Bcc);
msg.Body = txtBody.Text;
msg.BodyEncoding = Encoding.UTF8;
msg.Subject = txtSubject.Text;
msg.SubjectEncoding = Encoding.UTF8;
msg.From = from;
msg.To.Add(to);
smtp.Host = "smtp.Gmail.com";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("ادرس جیمیلت", "پسورد جیمیلت");
smtp.Send(msg);
//this.Text = i.ToString();
//}
MessageBox.Show("Send Mail Sucifuly", "MHsoft", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch(SystemException ex)
{
MessageBox.Show(ex.Message);
}

نمیدونم چرا اینجا جای ادرس جیمیل و پسورد جیمیل اشتباه نوشته میشه ... !!!!
خودت جاشونو عوض کن

hraeissi
جمعه 21 تیر 1392, 16:01 عصر
الان این کد را در دکمه بدهم
بعد هم که با زدنش اطلاعات فرم برای ایمیل من ارسل می شود ؟

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

sohil_ww
جمعه 21 تیر 1392, 16:03 عصر
الان این کد را در دکمه بدهم
بعد هم که با زدنش اطلاعات فرم برای ایمیل من ارسل می شود ؟

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

داداش کد آقای csharpnevis کامله که
اگه از من می شنوی کد فقط کپی پیست نکن بهتر اول یاد بگیری بعد (فردا می شی یکی مثل من که فقط بلده کپی پیست کنه)

CsharpNevisi
جمعه 21 تیر 1392, 16:03 عصر
الان این کد را در دکمه بدهم
بعد هم که با زدنش اطلاعات فرم برای ایمیل من ارسل می شود ؟

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

خب تو این کد
MailAddress to = new MailAddress(txtTo.Text);
به جای txtTo.Text ادرس ایمیل خودتو بنویس ... !!!
"a@a.com"

hraeissi
جمعه 21 تیر 1392, 16:21 عصر
namespace چی باید براش قرار بدهم

CsharpNevisi
جمعه 21 تیر 1392, 16:24 عصر
namespace چی باید براش قرار بدهم

using System.Net;
using System.Net.Mail;

hraeissi
جمعه 21 تیر 1392, 18:27 عصر
از راهنمایی ها بسیار ممنون
سئوالی دارم
من در فرم فیلد هایی دارم مثل نام ،تلفن که در کد پیش بینی نشده و ارسال نمی شود
برای این باید چکار کنم
ممنون

hraeissi
جمعه 21 تیر 1392, 18:36 عصر
من 2 تا از فیلد ها رو با استفاده از bcc و cc راه انداختم ولی یکی کم دارم

CsharpNevisi
جمعه 21 تیر 1392, 18:37 عصر
از راهنمایی ها بسیار ممنون
سئوالی دارم
من در فرم فیلد هایی دارم مثل نام ،تلفن که در کد پیش بینی نشده و ارسال نمی شود
برای این باید چکار کنم
ممنون

تو این خط msg.Body = txtBody.Text;
یه + بزار و تلفنم بهش اضافه کن مثلا
msg.Body = "tell : " + txtTell.Text + "\n" + "Adress : " + txtAdress.Text + "\n" + txtBody.Text;
به همین روال میتونی تگست باکس اضافه کنی و اسمشو اینجا بیاری اینم بگم که "\n" گزینه معاله inter عمل میکنه یعنی به سطر بعدی میره

CsharpNevisi
جمعه 21 تیر 1392, 18:44 عصر
من 2 تا از فیلد ها رو با استفاده از bcc و cc راه انداختم ولی یکی کم دارم

یعنی چی ؟؟؟
یه فیلد کم داره ؟؟؟
خب از تول باکس تکست باکس اضافه کن ..... !!!!
اگه نتونستی چیزایی که میخوایو بگو اضافه کنم برات بفرستم

hraeissi
جمعه 21 تیر 1392, 18:51 عصر
نشد
فقط متن body توی ایمیل میاد
این کدم شد

try
{
//for (int i = 0; i <= 5; i++)
//{
MailAddress from = new MailAddress("123@gmail.com", "Transport Software", Encoding.UTF8);
MailMessage msg = new MailMessage();
MailAddress to = new MailAddress("info@raeissi.com");
//MailAddress Cc = new MailAddress(txtname.Text);
//MailAddress Bcc = new MailAddress(txtnameco.Text);
SmtpClient smtp = new SmtpClient();
//msg.CC.Add(Cc);
//msg.Bcc.Add(Bcc);
msg.Body = "نام و نام خانوادگی : " + txtname.Text + "\n" + "نام شرکت : " + txtnameco.Text + "\n" + "تلفن : " + txttel.Text + "\n" + txtbody.Text;
msg.Body = txtbody.Text;
msg.BodyEncoding = Encoding.UTF8;
msg.Subject = txtsubject.Text;
msg.SubjectEncoding = Encoding.UTF8;
msg.From = from;
msg.To.Add(to);
smtp.Host = "smtp.Gmail.com";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("123@gmail.com", "123");
smtp.Send(msg);
//this.Text = i.ToString();
//}
MessageBox.Show("نامه شما با موفقیت ارسال گردید", "Transport Software", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SystemException ex)
{
MessageBox.Show(ex.Message);
}
}

CsharpNevisi
جمعه 21 تیر 1392, 18:56 عصر
نشد
چی نشد ؟؟؟؟
اره فقط متن body تو ایمیل میاد ... !!!
//MailAddress Cc = new MailAddress(txtname.Text);
//MailAddress Bcc = new MailAddress("hraeissi@gmail.com");
اینارو واس چی اینجوری کردی ... !!!
به صورت داینامیک بده اینارو ... !!!!
مثلا :
MailAddress Cc = new MailAddress(txtname.Text);
MailAddress Bcc = new MailAddress("hraeissi@gmail.com");

CsharpNevisi
جمعه 21 تیر 1392, 18:57 عصر
فقط یه چیزی یوزر پس ایمیلت تو کد معلومه ها ..... هکت میکننا .... !!!!
گفتم که نگی نگفتی ... !!!

hraeissi
جمعه 21 تیر 1392, 19:00 عصر
نه تستی هستش اصلش نیست
متن رو دیدی
نمیشه فقط متن در textbody را ارسال می کند و texbox های دیگه که اسم و تلفن را می گیره ارسال نمی کنه

CsharpNevisi
جمعه 21 تیر 1392, 19:04 عصر
نه تستی هستش اصلش نیست
متن رو دیدی
نمیشه فقط متن در textbody را ارسال می کند و texbox های دیگه که اسم و تلفن را می گیره ارسال نمی کنه

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

msg.Body = "نام و نام خانوادگی : " + txtname.Text + "\n" + "نام شرکت : " + txtnameco.Text + "\n" + "تلفن : " + txttel.Text + "\n" + txtbody.Text;
msg.Body = txtbody.Text;// این چیه اینجا ؟؟؟؟؟ اینو وردار

hraeissi
جمعه 21 تیر 1392, 19:09 عصر
من خیلی خیلی از شما متشکرم
این مشکل من حل شد
برم سراغ بقه
باز هم ممنون

rezam44
جمعه 21 تیر 1392, 19:16 عصر
خدا اجرت بده جناب CsharpNevisi:لبخندساده:
به قول دوست عزیزمون khokhan
ایدکم ا... بخیرا:چشمک:

CsharpNevisi
جمعه 21 تیر 1392, 19:21 عصر
فدای همتون .... !!!!

hraeissi
سه شنبه 25 تیر 1392, 09:47 صبح
با سلام

می خواستم کاربر بتواند یک عکس با پسوند های خاص را ( در صورت امکان با کنترل حجم ) در فرم قرار دهد و همراه ایمیل بصورت attach برایم ارسال شود

برای این چکار کنم

ممنون

sohil_ww
سه شنبه 25 تیر 1392, 10:53 صبح
با این کد می تونی فایل پیوست کنی به میلت
message.Attachments.Add(new Attachment(@"E:\1.srt"));

hraeissi
سه شنبه 25 تیر 1392, 12:04 عصر
با این کد می تونی فایل پیوست کنی به میلت
message.Attachments.Add(new Attachment(@"E:\1.srt"));

مرسی من فقط نمی دونم این کد کجا بایستی باشد

من می خواهم برای کاربر یک قسمت باشه که با browsکردن فایل را انتخاب کند و پس از ارسال فایل همراه نامه ارسال گردد

1- در کد های بالا که برای ارسال ایمیل بوده کجا بایستی برای این موضوع تغییر بدم
2- ازقسمت toolbox چه چیزی را برای این موضوع انتخاب کنم
3- من در فرم یک label دارم که تاریخ روز را نشان میدهد ،چکار کنم که تاریخ فوق نیز ارسال گردد

ممنون

sohil_ww
سه شنبه 25 تیر 1392, 12:26 عصر
برای انتخاب 1 فایل می تونی از کامپونیت folderbrowser موجود تو toolbox استفاده کنی

بعد فایله انتخابی به جای E:\1.srt قرار بده

2.این دستور باید قبل از smtp.Send(msg); قرار بدی که فایل پیوستم شامل نامه بشه

3.واسه تاریخ به نظر من متن لیبل 1 تو با موضوع نامه خودت جمع کن
برای مثال msg.Subject = txtsubject.Text +"\t "+lable1.text;

موفق باشی

CsharpNevisi
سه شنبه 25 تیر 1392, 12:30 عصر
برای انتخاب 1 فایل می تونی از کامپونیت folderbrowser موجود تو toolbox استفاده کنی
folderbrowser برای انتخاب یه پوشه استفاده میشه ... برای انتخاب فابل باید از openfiledialog استفاده کنه ... برای کنترل حجمم میتونی از fileinfo استفاده کنی

hraeissi
چهارشنبه 26 تیر 1392, 07:00 صبح
folderbrowser برای انتخاب یه پوشه استفاده میشه ... برای انتخاب فابل باید از openfiledialog استفاده کنه ... برای کنترل حجمم میتونی از fileinfo استفاده کنی

openfile چه کار می کنی چیزی نمیاره باید چطوری فرابخوانمش

میگما این یادگیری برنامه نویسی هم چقدر سخته

drsina
چهارشنبه 26 تیر 1392, 07:27 صبح
نه بابا چیش سخته !
OpenFileDialog در واقع یه فایل باز میکنه ، یعنی تو میتونی با اون آدرس فایلتو تو یه متغیر بریزی و بعد به جای اینکه اسم فایل رو تو اتچمنت بدی ، به جاش متغیر رو بنویسی !!!!!!!

تو همون جا که دکمه و تکست باکس و از این چیزاس (منظورم tool box )
یه اوپن فایل دایالوگ باز می کنه و میاریش تو صفحه !
بعد با یه کد مثه :

str path = openfiledialog1

اون میریزی تو psth

خب حالا یه دکمه به نام مثلا BROWSE میزاری و تو رویداد کلیک مینویسی :

filedialog1.opendialog():

در آخر به جای آدرس فایل تو کدی که بچه ها بهت دادن ، (منظورم اتچمنت هست!) به جای "آدرس" ، path رو مینویسی !

طاعاتتونم قبول باشه !:بوس:

hraeissi
چهارشنبه 26 تیر 1392, 07:40 صبح
با اجازه نفهمیدم

کجا بزارم

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;

namespace Networkservice
{
public partial class frmsupport : Form
{
public frmsupport()
{
InitializeComponent();
}

private void btnclear_Click(object sender, EventArgs e)
{
foreach (Control k in Controls)
{
if (k is TextBox)
{
k.Text = "";
}
}
}

private void btnsend_Click(object sender, EventArgs e)
{
try
{
//for (int i = 0; i <= 5; i++)
//{
MailAddress from = new MailAddress("123@gmail.com", "Software Support", Encoding.UTF8);
MailMessage msg = new MailMessage();
MailAddress to = new MailAddress("info@raeissi.com");
//MailAddress Cc = new MailAddress(txtname.Text);
//MailAddress Bcc = new MailAddress(txtnameco.Text);
SmtpClient smtp = new SmtpClient();
//msg.CC.Add(Cc);
//msg.Bcc.Add(Bcc);
msg.Body = "نام و نام خانوادگی : " + txtname.Text + "\n" + "نام شرکت : " + txtcompany.Text + "\n" + "درجه اهمیت : " + comdaraje.Text + "\n" + txtmemo.Text;
msg.BodyEncoding = Encoding.UTF8;
msg.Subject = txtsubject.Text+"\t"+label7.Text;
msg.SubjectEncoding = Encoding.UTF8;
msg.From = from;
msg.To.Add(to);
smtp.Host = "smtp.Gmail.com";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("123@gmail.com", "123");
//msg.Attachments.Add(new Attachment(@"E:\1.srt"));
smtp.Send(msg);
//this.Text = i.ToString();
//}
MessageBox.Show(" درخواست پشتیبانی شما با موفقیت ارسال شد "+"\n"+"بزودی با شما تماس گرفته خواهد شد ", "Software Support", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SystemException ex)
{
MessageBox.Show(ex.Message);
}
}

private void btnexit_Click(object sender, EventArgs e)
{
this.Close();
}

private void frmsupport_Load(object sender, EventArgs e)
{
System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();

label7.Text = cal.GetYear(DateTime.Now) + "/" + cal.GetMonth(DateTime.Now) + "/" + cal.GetDayOfMonth(DateTime.Now);

}

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{

}

private void btnbrowse_Click(object sender, EventArgs e)
{


}



}
}

sohil_ww
چهارشنبه 26 تیر 1392, 07:41 صبح
folderbrowser برای انتخاب یه پوشه استفاده میشه ... برای انتخاب فابل باید از openfiledialog استفاده کنه ... برای کنترل حجمم میتونی از fileinfo استفاده کنی

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

برای استفاده از OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "*.jpg|*.jpg";
ofd.ShowDialog();
pictureBox1.ImageLocation = ofd.FileName;

ان شاالله مفید باشه

hraeissi
چهارشنبه 26 تیر 1392, 07:43 صبح
ممنون میشه توی کدم قرار بدید

hraeissi
چهارشنبه 26 تیر 1392, 07:59 صبح
خوب الان فایل را تونستم قرار بردم چند تا مسئله
1- چطوری آدرس فایل را بیارم توی texbox مربوطه
2- چطوری متغییر را و کجا بسازم که فایل ضمیمه بشه

ببخشید منو


private void btnsend_Click(object sender, EventArgs e)
{
try
{
//for (int i = 0; i <= 5; i++)
//{
MailAddress from = new MailAddress("123@gmail.com", "Software Support", Encoding.UTF8);
MailMessage msg = new MailMessage();
MailAddress to = new MailAddress("info@raeissi.com");
//MailAddress Cc = new MailAddress(txtname.Text);
//MailAddress Bcc = new MailAddress(txtnameco.Text);
SmtpClient smtp = new SmtpClient();
//msg.CC.Add(Cc);
//msg.Bcc.Add(Bcc);
msg.Body = "نام و نام خانوادگی : " + txtname.Text + "\n" + "نام شرکت : " + txtcompany.Text + "\n" + "درجه اهمیت : " + comdaraje.Text + "\n" + txtmemo.Text;
msg.BodyEncoding = Encoding.UTF8;
msg.Subject = txtsubject.Text+"\t"+label7.Text;
msg.SubjectEncoding = Encoding.UTF8;
msg.From = from;
msg.To.Add(to);
smtp.Host = "smtp.Gmail.com";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("123@gmail.com", "123");
//msg.Attachments.Add(new Attachment(@"E:\1.srt"));
smtp.Send(msg);
//this.Text = i.ToString();
//}
MessageBox.Show(" درخواست پشتیبانی شما با موفقیت ارسال شد "+"\n"+"بزودی با شما تماس گرفته خواهد شد ", "Software Support", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SystemException ex)
{
MessageBox.Show(ex.Message);
}
}

private void btnexit_Click(object sender, EventArgs e)
{
this.Close();
}

private void frmsupport_Load(object sender, EventArgs e)
{
System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();

label7.Text = cal.GetYear(DateTime.Now) + "/" + cal.GetMonth(DateTime.Now) + "/" + cal.GetDayOfMonth(DateTime.Now);

}

private void btnbrowse_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
openFileDialog1.Filter = "*.jpg|*.jpg";
picbox.ImageLocation = openFileDialog1.FileName;

}

sohil_ww
چهارشنبه 26 تیر 1392, 08:07 صبح
چطوری آدرس فایل را بیارم توی texbox مربوطه

textbox1.text=ofd.filename;

چطوری متغییر را و کجا بسازم که فایل ضمیمه بشه

string path=""; //متغیر سراسری
private void btnsend_Click(object sender, EventArgs e)
{
try
{
//for (int i = 0; i <= 5; i++)
//{
MailAddress from = new MailAddress("123@gmail.com", "Software Support", Encoding.UTF8);
MailMessage msg = new MailMessage();
MailAddress to = new MailAddress("info@raeissi.com");
//MailAddress Cc = new MailAddress(txtname.Text);
//MailAddress Bcc = new MailAddress(txtnameco.Text);
SmtpClient smtp = new SmtpClient();
//msg.CC.Add(Cc);
//msg.Bcc.Add(Bcc);
msg.Body = "نام و نام خانوادگی : " + txtname.Text + "\n" + "نام شرکت : " + txtcompany.Text + "\n" + "درجه اهمیت : " + comdaraje.Text + "\n" + txtmemo.Text;
msg.BodyEncoding = Encoding.UTF8;
msg.Subject = txtsubject.Text+"\t"+label7.Text;
msg.SubjectEncoding = Encoding.UTF8;
msg.From = from;
msg.To.Add(to);
smtp.Host = "smtp.Gmail.com";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("123@gmail.com", "123");
msg.Attachments.Add(new Attachment(path"));
smtp.Send(msg);
//this.Text = i.ToString();
//}
MessageBox.Show(" درخواست پشتیبانی شما با موفقیت ارسال شد "+"\n"+"بزودی با شما تماس گرفته خواهد شد ", "Software Support", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (SystemException ex)
{
MessageBox.Show(ex.Message);
}
}

private void btnexit_Click(object sender, EventArgs e)
{
this.Close();
}

private void frmsupport_Load(object sender, EventArgs e)
{
System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();

label7.Text = cal.GetYear(DateTime.Now) + "/" + cal.GetMonth(DateTime.Now) + "/" + cal.GetDayOfMonth(DateTime.Now);

}

private void btnbrowse_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
openFileDialog1.Filter = "*.jpg|*.jpg";
path=openfiledialog.filename;
picbox.ImageLocation = openFileDialog1.FileName;

}



ببخشید منو

خواهش می کنم سئوال پرسیدن واسه هر کسی پیش می آد

hraeissi
چهارشنبه 26 تیر 1392, 08:15 صبح
کد متغییر من

public frmsupport()
{
InitializeComponent();
string patch = openFileDialog1;

}


ولی خطا یگیره
Error 2 Cannot implicitly convert type 'System.Windows.Forms.OpenFileDialog' to 'string'

hraeissi
چهارشنبه 26 تیر 1392, 08:34 صبح
نتیجه کد ها زیر شد ولی فایل ضمیمه نمی شود و فقط نامه ارسال می شود



namespace Networkservice
{
public partial class frmsupport : Form
{
private string path;
public frmsupport()
{
InitializeComponent();

}

private void btnclear_Click(object sender, EventArgs e)
{
foreach (Control k in Controls)
{
if (k is TextBox)
{
k.Text = "";
}
}
}

private void btnsend_Click(object sender, EventArgs e)
{
try
{
//for (int i = 0; i <= 5; i++)
//{
MailAddress from = new MailAddress("123@gmail.com", "Software Support", Encoding.UTF8);
MailMessage msg = new MailMessage();
MailAddress to = new MailAddress("info@raeissi.com");
//MailAddress Cc = new MailAddress(txtname.Text);
//MailAddress Bcc = new MailAddress(txtnameco.Text);
SmtpClient smtp = new SmtpClient();
//msg.CC.Add(Cc);
//msg.Bcc.Add(Bcc);
msg.Body = "نام و نام خانوادگی : " + txtname.Text + "\n" + "نام شرکت : " + txtcompany.Text + "\n" + "درجه اهمیت : " + comdaraje.Text + "\n" + txtmemo.Text;
msg.BodyEncoding = Encoding.UTF8;
msg.Subject = txtsubject.Text+"\t"+label7.Text;
msg.SubjectEncoding = Encoding.UTF8;
msg.From = from;
msg.To.Add(to);
smtp.Host = "smtp.Gmail.com";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("123@gmail.com", "123");
//msg.Attachments.Add(new Attachment(@"E:\1.srt"));
smtp.Send(msg);
//this.Text = i.ToString();
//}
MessageBox.Show(" درخواست پشتیبانی شما با موفقیت ارسال شد "+"\n"+"بزودی با شما تماس گرفته خواهد شد ", "Software Support", MessageBoxButtons.OK, MessageBoxIcon.Information);

foreach (Control k in Controls)
{
if (k is TextBox)
{
k.Text = "";
}
}
}
catch (SystemException ex)
{
MessageBox.Show(ex.Message);
}
}

private void btnexit_Click(object sender, EventArgs e)
{
this.Close();
}

private void frmsupport_Load(object sender, EventArgs e)
{
System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();

label7.Text = cal.GetYear(DateTime.Now) + "/" + cal.GetMonth(DateTime.Now) + "/" + cal.GetDayOfMonth(DateTime.Now);

}

private void btnbrowse_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
openFileDialog1.Filter = "*.jpg|*.jpg";
picbox.ImageLocation = openFileDialog1.FileName;
txtpatch.Text=openFileDialog1.FileName;
path = openFileDialog1.FileName;

}



}
}

hraeissi
چهارشنبه 26 تیر 1392, 08:41 صبح
از تمام بزرگواران متشکرم
مشکل حل شد
ممنون

sohil_ww
چهارشنبه 26 تیر 1392, 08:46 صبح
ولی خطا یگیره
Error 2 Cannot implicitly convert type 'System.Windows.Forms.OpenFileDialog' to 'string'


کد به این صورت بنویس
string patch = openFileDialog1.filename;

CsharpNevisi
چهارشنبه 26 تیر 1392, 10:15 صبح
از تمام بزرگواران متشکرم
مشکل حل شد
ممنون

برای کنترل حجم میتونی از کد زیر استفاده کنی .. !!!
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
System.IO.FileInfo fInfo = new System.IO.FileInfo(openFileDialog1.FileName);
//این کد حافظه ای که فایل اشغال کرده را بر میگرداند
//کیلو بیت
MessageBox.Show((fInfo.Length).ToString() + "کیلوبیت");
//کیلوبایت
MessageBox.Show((fInfo.Length / 1024).ToString() + "کیلوبایت");
//مگابایت
MessageBox.Show(((fInfo.Length / 1024) / 1024).ToString() + "مگابایت");
}

CsharpNevisi
چهارشنبه 26 تیر 1392, 10:18 صبح
اگه خواستی برنامه ان حرفه ای شه ... بگو واسط کد بزارم .... فایلو درگ کنی تو فرم و از اپن فایل دیالوگ استفاده نکنی

mohammadsamadi1377
چهارشنبه 26 تیر 1392, 11:38 صبح
CsharpNevisi میشه بزاری

hraeissi
چهارشنبه 26 تیر 1392, 15:49 عصر
اگه خواستی برنامه ان حرفه ای شه ... بگو واسط کد بزارم .... فایلو درگ کنی تو فرم و از اپن فایل دیالوگ استفاده نکنی

با سلام مجدد

این که خیلی خوبه البته منو گیج نکنه و از همینی هم که دارم یاد میگیرم وا نمونم

موضوع ای پیش آمده که نمی دانم چکار کنم
1- من نمی توانم فرم را بدون عکس و یا به عبارتی فایل attach شده ارسال کنم .به عبارتی وقتی فرم را پر می کنم و تصویری را ضمیمه نمی کنم به محض زدن دکمه ارسال از null بودن چیزی خطا می گیرد و این پیغام را در message box نمایش می دهد
value cannot be null
parameter name: filename

2 - چطوری وقتی سیستم اینترنت نداشت به کاربر پیغام اطمینان از اتصال به اینترنت را نمایش دهد
3- چگونه حجم فایل را کنترل کنم
ممنون

sohil_ww
چهارشنبه 26 تیر 1392, 15:59 عصر
چطوری وقتی سیستم اینترنت نداشت به کاربر پیغام اطمینان از اتصال به اینترنت را نمایش دهد

بهترین راه پینگ گرفتنه که 1 سرچ بزنی کدش تو همین تالار هست


چگونه حجم فایل را کنترل کنم

کد استاد csharpnevis که کامل بود 1 شرط بزار قبل از دستور اتچ که اگه فایل مقدار داشت اون دستور اجرا بشه و بگو چکم کنه که فایل بیشتر از 1 عددی نباشه

sohil_ww
چهارشنبه 26 تیر 1392, 16:05 عصر
CsharpNevisi میشه بزاری

با اجازه آقای csharpnevis

107418

mohammadsamadi1377
چهارشنبه 26 تیر 1392, 17:24 عصر
نمیشه عکس رو از بیرون برنامه دراگ کنم
تو وی بی یه دستور Commond داریم که آدرس رو از بیرون میگیره

CsharpNevisi
چهارشنبه 26 تیر 1392, 17:34 عصر
با اجازه آقای csharpnevis

107418

سلام ... مر30 بابت کدی که واسه استفاده گذاشتی ولی منظور من این بود که فایلو از تو مای کاپیوتر بکشه و بندازه داخل برنامه :::
اینم سورش .. !!

CsharpNevisi
چهارشنبه 26 تیر 1392, 17:42 عصر
1- من نمی توانم فرم را بدون عکس و یا به عبارتی فایل attach شده ارسال کنم .به عبارتی وقتی فرم را پر می کنم و تصویری را ضمیمه نمی کنم به محض زدن دکمه ارسال از null بودن چیزی خطا می گیرد و این پیغام را در message box نمایش می دهد
value cannot be null
parameter name: filename
خب میتونی کدهای اتچ را داخل این شرط بزاری :

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//دستورات اتچمنت
}


2 - چطوری وقتی سیستم اینترنت نداشت به کاربر پیغام اطمینان از اتصال به اینترنت را نمایش دهد
این کد کمکت میکنه ... .. !!

using System.Runtime.InteropServices;
using System.Net;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
//Creating a function that uses the API function...
bool IsConnectedToInternet()
{
bool a;
int Desc;
a = InternetGetConnectedState(out Desc, 0);
return a;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(IsConnectedToInternet().ToString() );
}
}
}

اگر اینترنت داشته باشی مقدار true و در غیر اینصورت false برمیگردونه ... !!!


3- چگونه حجم فایل را کنترل کنم
با این کدی که بهت دادم :

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
System.IO.FileInfo fInfo = new System.IO.FileInfo(openFileDialog1.FileName);
//این کد حافظه ای که فایل اشغال کرده را بر میگرداند
//کیلو بیت
MessageBox.Show((fInfo.Length).ToString() + "کیلوبیت");
//کیلوبایت
MessageBox.Show((fInfo.Length / 1024).ToString() + "کیلوبایت");
//مگابایت
MessageBox.Show(((fInfo.Length / 1024) / 1024).ToString() + "مگابایت");
}


البته همه اینارو sohil_ww عزیز گفته بود و پست من برای تاکید بیشتر بود ... !!!
موفق باشید .. !!

mohammadsamadi1377
چهارشنبه 26 تیر 1392, 17:48 عصر
چجوری وقتی عکس رو تو پیکچر باکس دراگ کردم اون رو لود کنم

CsharpNevisi
چهارشنبه 26 تیر 1392, 18:15 عصر
چجوری وقتی عکس رو تو پیکچر باکس دراگ کردم اون رو لود کنم

ببین وقتی عکس رو درگ میکنی ادرس میاد تو finfo.FullName درسته ... !!!
حالا با این کد میتونی لودش کنی .. !!
pictureBox1.Image = Image.FromFile(finfo.FullName);

mohammadsamadi1377
چهارشنبه 26 تیر 1392, 18:41 عصر
من سورس رو تغبر دادم به جای فرمباید توی پیکچرباکس دراگ کرد ولی انجام نمیده

CsharpNevisi
چهارشنبه 26 تیر 1392, 18:43 عصر
من سورس رو تغبر دادم به جای فرمباید توی پیکچرباکس دراگ کرد ولی انجام نمیده

الان همین برنامه رو برات ویرایش میکنم میدم بهت ... !!!

CsharpNevisi
چهارشنبه 26 تیر 1392, 18:48 عصر
من سورس رو تغبر دادم به جای فرمباید توی پیکچرباکس دراگ کرد ولی انجام نمیده

بفرما اینم کد .... !!!
فقط یه خواهش ... !!!!
بالا غیرتا کدهارو فقط کپی پیست نکنید ... !!!! (** یاد بگیرید خودتون بنویسید **)

mohammadsamadi1377
چهارشنبه 26 تیر 1392, 19:04 عصر
نه من میخوام که فایل رو تو پیکچر باکس درگ کنم نه تو فرم (مثلا : گوشه ای از فرمم یه پیکچرباکس دارم که باید فایل توی اون دراگ بشه نه جای دیگه )

mohammadsamadi1377
چهارشنبه 26 تیر 1392, 23:57 عصر
کسی نظری نداره

hraeissi
پنج شنبه 27 تیر 1392, 07:32 صبح
خب میتونی کدهای اتچ را داخل این شرط بزاری :

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//دستورات اتچمنت
}


این کد کمکت میکنه ... .. !!

using System.Runtime.InteropServices;
using System.Net;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
//Creating a function that uses the API function...
bool IsConnectedToInternet()
{
bool a;
int Desc;
a = InternetGetConnectedState(out Desc, 0);
return a;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(IsConnectedToInternet().ToString() );
}
}
}

اگر اینترنت داشته باشی مقدار true و در غیر اینصورت false برمیگردونه ... !!!


با این کدی که بهت دادم :

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
System.IO.FileInfo fInfo = new System.IO.FileInfo(openFileDialog1.FileName);
//این کد حافظه ای که فایل اشغال کرده را بر میگرداند
//کیلو بیت
MessageBox.Show((fInfo.Length).ToString() + "کیلوبیت");
//کیلوبایت
MessageBox.Show((fInfo.Length / 1024).ToString() + "کیلوبایت");
//مگابایت
MessageBox.Show(((fInfo.Length / 1024) / 1024).ToString() + "مگابایت");
}


البته همه اینارو sohil_ww عزیز گفته بود و پست من برای تاکید بیشتر بود ... !!!
موفق باشید .. !!

نشد
احتمالاً جای مناسبی قرار ندادم
کجای کد قرار بدهم

hraeissi
جمعه 28 تیر 1392, 19:48 عصر
سلام

توی کدی که داده بودید دستور attach توی دل دستورات دیگه است حالا من شرطی را که گفته بودید را چطوری انجا قرار دهم

در خصوص کنترل اینترنت درسته مقدار false و true را بر می گرداند حالا چکار کنم به جای نمایش این عبارات من را نمایش دهد

hraeissi
جمعه 28 تیر 1392, 19:56 عصر
من شرطی که برای کنترل attach بود را همانطور که در زیر می بینید در کد آن قرار دادم

smtp.Credentials = new NetworkCredential("123@gmail.com", "123");
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
msg.Attachments.Add(new Attachment(path));
}
smtp.Send(msg);

MessageBox.Show(" درخواست پشتیبانی شما با موفقیت ارسال شد " + "\n" + "بزودی با شما تماس گرفته خواهد شد ", "Software Support", MessageBoxButtons.OK, MessageBoxIcon.Information);

ولی وقتی ارسال را می زنم اتوماتیک پنجره brows باز می شود
مشکل برای چیه

CsharpNevisi
جمعه 28 تیر 1392, 19:56 عصر
در خصوص کنترل اینترنت درسته مقدار false و true را بر می گرداند حالا چکار کنم به جای نمایش این عبارات من را نمایش دهد
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
//Creating a function that uses the API function...
bool IsConnectedToInternet()
{
bool a;
int Desc;
a = InternetGetConnectedState(out Desc, 0);
return a;
}

private void button2_Click(object sender, EventArgs e)
{
if (IsConnectedToInternet().ToString() == "True")
{
MessageBox.Show("به اینترنت وصلیم","توجه",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
MessageBox.Show("به اینترنت وصل نیستیم", "توجه", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

CsharpNevisi
جمعه 28 تیر 1392, 20:00 عصر
من شرطی که برای کنترل attach بود را همانطور که در زیر می بینید در کد آن قرار دادم

smtp.Credentials = new NetworkCredential("123@gmail.com", "123");
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
msg.Attachments.Add(new Attachment(path));
}
smtp.Send(msg);

MessageBox.Show(" درخواست پشتیبانی شما با موفقیت ارسال شد " + "\n" + "بزودی با شما تماس گرفته خواهد شد ", "Software Support", MessageBoxButtons.OK, MessageBoxIcon.Information);

ولی وقتی ارسال را می زنم اتوماتیک پنجره brows باز می شود
مشکل برای چیه

خب تو باید این قسمتو
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
msg.Attachments.Add(new Attachment(path));

تو دکمه ای که برای اتچ کردن گذاشتی بنویسی نه تو ارسال ... !!!!
بعدشم باید msg رو داخل کلاس فرم و عمومی تعریف کنی

hraeissi
جمعه 28 تیر 1392, 20:00 عصر
MessageBox.Show("به اینترنت وصلیم","توجه",MessageBoxButtons.OK,Messag eBoxIcon.Information);
در خط فوق از message و ebox خطا می دهد

CsharpNevisi
جمعه 28 تیر 1392, 20:02 عصر
MessageBox.Show("به اینترنت وصلیم","توجه",MessageBoxButtons.OK,Messag eBoxIcon.Information);
در خط فوق از message و ebox خطا می دهد

اینجا بین (Messag eBoxIcon) فاصله افتاده ... فاصله شم بردار ... !!!

hraeissi
جمعه 28 تیر 1392, 20:11 عصر
فهمیدم و حلش ردم ممنون

کد دکمه بروز من
private void btnbrowse_Click(object sender, EventArgs e)
{

openFileDialog1.ShowDialog();
openFileDialog1.Filter = "*.jpg|*.jpg";
picbox.ImageLocation = openFileDialog1.FileName;
txtpatch.Text = openFileDialog1.FileName;
path = openFileDialog1.FileName;

است
این کد را بایستی بین شروط قرار دهم ؟
اگر درست است که کار نمی کند و اگر خیر منظورتان از دکمه بروز کدام است

CsharpNevisi
جمعه 28 تیر 1392, 20:16 عصر
اینطوری بنویسش :

openFileDialog1.Filter = "*.jpg|*.jpg";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//openFileDialog1.ShowDialog();
picbox.ImageLocation = openFileDialog1.FileName;
txtpatch.Text = openFileDialog1.FileName;
path = openFileDialog1.FileName;
}

و برای دکمه ارسال این کارو باید بکنیم :

if (txtpatch.Text!="")
{
msg.Attachments.Add(new Attachment(txtpatch.Text));
}

hraeissi
جمعه 28 تیر 1392, 20:21 عصر
متشکرم کامل کامل بود

میشه به جای پیغام شما به اینترنت متصل هستید که بی مورد است شکل ماوس را به حالت ساعت شنی درآورد ؟

CsharpNevisi
جمعه 28 تیر 1392, 20:24 عصر
متشکرم کامل کامل بود

میشه به جای پیغام شما به اینترنت متصل هستید که بی مورد است شکل ماوس را به حالت ساعت شنی درآورد ؟

بله
this.UseWaitCursor = true;

hraeissi
جمعه 28 تیر 1392, 20:29 عصر
به نظرم تاپیک خوب و کاملی شد و برای دوستان مفید خواهد بود
از دوست خوبم csharpnevis کمال تشکر را دارم
خیلی ممنون از کمک و راهنمایی
موفق باشید

namazi.a.r
چهارشنبه 02 مرداد 1392, 10:02 صبح
سلام
دوستان ... برنامه ارسال ایمیل، کار میکنه ولی وقتی متن فاررسی نوشته باشم.... همشو ؟؟؟؟؟؟ میفرسته... راهی برای رفع این مشکل سراغ دارید ؟؟؟؟

sohil_ww
چهارشنبه 02 مرداد 1392, 10:34 صبح
Encoding.UTF8

این کد حذف کن 1 چک بکن

minaalamshahi
سه شنبه 08 مرداد 1392, 14:15 عصر
اول تو جیمیل یه اکانت بساز بعدش

try
{
//for (int i = 0; i <= 5; i++)
//{
MailAddress from = new MailAddress("ادرس جیمیلت", "MHsoft", Encoding.UTF8);
MailMessage msg = new MailMessage();
MailAddress to = new MailAddress(txtTo.Text);
MailAddress Cc = new MailAddress(txtCC.Text);
MailAddress Bcc = new MailAddress(txtBCC.Text);
SmtpClient smtp = new SmtpClient();
msg.Bcc.Add(Bcc);
msg.Body = txtBody.Text;
msg.BodyEncoding = Encoding.UTF8;
msg.Subject = txtSubject.Text;
msg.SubjectEncoding = Encoding.UTF8;
msg.From = from;
msg.To.Add(to);
smtp.Host = "smtp.Gmail.com";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("ادرس جیمیلت", "پسورد جیمیلت");
smtp.Send(msg);
//this.Text = i.ToString();
//}
MessageBox.Show("Send Mail Sucifuly", "MHsoft", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch(SystemException ex)
{
MessageBox.Show(ex.Message);
}

نمیدونم چرا اینجا جای ادرس جیمیل و پسورد جیمیل اشتباه نوشته میشه ... !!!!
خودت جاشونو عوض کن

من این کد رو گذاشتم و به جای آدرس جیمیل و پسورد هم جیمیل خودم و پسوردش رو گذاشتم اما وقتی بهش یه آدرس اشتباه در قسمت to میدم بازهم هم پسغام succefully میده پس از کجا بفهمم که آدرس یاهو جیمیل که کاربر به من میده اشتباه هست یا نه؟

sohil_ww
سه شنبه 08 مرداد 1392, 14:26 عصر
فکر کنم راهی نباشه چون وقتی شما خودتونم از سایت یاهو ایمیل ارسال می کنید سایت موقع ارسال ایرادی نمی گیرره ولی بعد ارسال 1 پیام میاد می گه آدرس اشتباه بوده

CsharpNevisi
سه شنبه 08 مرداد 1392, 14:38 عصر
من این کد رو گذاشتم و به جای آدرس جیمیل و پسورد هم جیمیل خودم و پسوردش رو گذاشتم اما وقتی بهش یه آدرس اشتباه در قسمت to میدم بازهم هم پسغام succefully میده پس از کجا بفهمم که آدرس یاهو جیمیل که کاربر به من میده اشتباه هست یا نه؟

همونطوری که دوتمون سهیل گفت ... به نظر میاد امکانی برای این موضوع نباشه ... (البته من 100٪ نمیدونم .. شایدم باشه) .... !!!!

drift7720
پنج شنبه 16 بهمن 1393, 10:57 صبح
با سلام .میشه تو C#‎‎‎‎‎‎.netبا این کد ها ایمیل بفرستم؟


try
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

mail.From = new MailAddress("your_email_address@gmail.com");
mail.To.Add("to_address");
mail.Subject = "Test Mail";
mail.Body = "This is for testing SMTP mail from GMAIL";

SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
SmtpServer.EnableSsl = true;

SmtpServer.Send(mail);
MessageBox.Show("mail Send");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}