PDA

View Full Version : Attach کردن تمام فایل های درون یک پوشه



c-sharp_South
چهارشنبه 07 تیر 1391, 17:09 عصر
سلام و خسته نباشید خدمت برو بچه های گل و فعال سایت برنامه نویس.
یک سوال داشتم.

SmtpClient _SmtpClient = new SmtpClient("smtp.gmail.com");
MailAddressCollection _MailAddressCollection = new MailAddressCollection();
MailMessage _message = new MailMessage();
_message.From = new MailAddress("gmail@gmail.com");
_message.Body = "test mishe";
_message.Subject = "test";
_message.To.Add("my id@yahoo.com");
Attachment data = new Attachment("addreese file");
_message.Attachments.Add(data);
_SmtpClient.Port = 587;
_SmtpClient.Credentials = new System.Net.NetworkCredential("gmail@gmail.com", "gmailpassword");
_SmtpClient.EnableSsl = true;
_SmtpClient.Send(_message);


میخواستم بدونم چطوری میشه توی Attach یک آدرس پوشه رو بهش بدم مثلا:
D:/newfolder
حالا میخوام تمام فایل های موجود توی newfolder رو برام Send کنه.
یک چیزه دیگه هم میخواستم اگه ممکنه بهم بگین.
مثلا اینکه دستور بدیم تمام فایل هایی که با پسوند dat هستند رو برامون attach و ارسال کنه.
ممنون میشم راهنماییم کنین.

c-sharp_South
چهارشنبه 07 تیر 1391, 18:33 عصر
چرا کسی جواب نمیده :گریه:

harani
چهارشنبه 07 تیر 1391, 23:13 عصر
یکی از تایپک ها با نام کاربر آقای faravaghi (http://barnamenevis.org/showthread.php?305261-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D8%A7%DB%8C%D9%85%DB%8C%D9%84-%D8%A8%D8%A7-%DA%A9%D8%AF-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE) در مورد ساخت ایمیل و Attach کردن فایل صحبت کردن یه برنامه برای دانلود گذاشتن ببینید شاید مشکلتان حل شود .

c-sharp_South
پنج شنبه 08 تیر 1391, 07:34 صبح
مرسی دوست عزیز .
این رو داشتم.
میخوام از همین کدی استفاده کنم که سورس رو گذاشتم.
فکر نکنم کد attachmente اون سورس به این بخوره.

c-sharp_South
پنج شنبه 08 تیر 1391, 08:16 صبح
فقط اگه لطف کنین بگین چطوری میشه گفت مثلا موقع attach کردن از فلان پویشه هر فایل با پسوند exe است رو برام send کن.
همین مشکلم رو کامل حل میکنه.اگه راهنمایی کنین ممنون میشم

Mahmoud.Afrad
پنج شنبه 08 تیر 1391, 09:01 صبح
foreach (string file in Directory.GetFiles("Directory Path", "*.dat"))
message.Attachments.Add(new Attachment(file));یا

Directory.GetFiles("Directory Path", "*.dat").ToList().ForEach(address =>message.Attachments.Add(new Attachment(address)); منظور از Directory Path مسیر پوشه مورد نظر هست.

Saeed_m_Farid
پنج شنبه 08 تیر 1391, 09:05 صبح
سلام


میخواستم بدونم چطوری میشه توی Attach یک آدرس پوشه رو بهش بدم مثلا:
D:/newfolder
حالا میخوام تمام فایل های موجود توی newfolder رو برام Send کنه.
یک چیزه دیگه هم میخواستم اگه ممکنه بهم بگین.
مثلا اینکه دستور بدیم تمام فایل هایی که با پسوند dat هستند رو برامون attach و ارسال کنه.

کار سختی نیست، چرا دو روزه الّافش شدین؟ همون دستور Attachments.Add رو برای تمام فایلهای اون پوشه صدا کنید، به همین راحتی:
...
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"D:\newfolder");
foreach (System.IO.FileInfo file in dir.GetFiles("*.dat"))
_message.Attachments.Add(new Attachment(file.Name));
...


مثلا موقع attach کردن از فلان پویشه هر فایل با پسوند exe است رو برام send کن. فایل exe و سایر فایلهای اجرایی رو بیشتر Mail Server ها ضمیمه نمی‌کنن (از جمله همین GMail) ولی شما می‌تونید برای هر پسوندی عیر از اجرائی‌ها! فقط dat.* رو با اونی که مدنظرتون هست جایگزین کنید...
موفق باشید./

Saeed_m_Farid
پنج شنبه 08 تیر 1391, 09:14 صبح
جناب mafaman2003 (http://barnamenevis.org/member.php?71297-mafaman2003) پست واسه خودتون رزو می‌کنید؟:لبخند: من ....................... شما رو دیدم، پست زدم؛ اگه میدونستم میخواین جواب بدین جسارت نمی‌کردم!

Mahmoud.Afrad
پنج شنبه 08 تیر 1391, 09:49 صبح
نه راستش اول کد linq رو گذاشته بودم ولی یادم رفته بود یوزر و پسورد خودم رو از توی کد بردارم:قهقهه: به خاطر همین فورا نوشته ها رو حذف کردم و رفتم سراغ تغییر پسورد ایمیلم. به خاطر همین طول کشید تا پاسخ رو دوباره ادیت کنم.

c-sharp_South
پنج شنبه 08 تیر 1391, 10:07 صبح
مرسی از همتون :قلب:
باز هم داره Send نمیکنه :گریه: نمیدونم کجای کار دارم اشتباه میکنم.
اگه زحمتی نیست سورس رو یک نگاه بندازین.
http://s3.picofile.com/file/7421379351/my_send_mail.rar.html

c-sharp_South
پنج شنبه 08 تیر 1391, 10:10 صبح
نه راستش اول کد linq رو گذاشته بودم ولی یادم رفته بود یوزر و پسورد خودم رو از توی کد بردارم:قهقهه: به خاطر همین فورا نوشته ها رو حذف کردم و رفتم سراغ تغییر پسورد ایمیلم. به خاطر همین طول کشید تا پاسخ رو دوباره ادیت کنم.

چه شانسی آوردی :قهقهه: فدات شم که بخاطر من ایمیلت تو خطر افتاد :بوس:

Mahmoud.Afrad
پنج شنبه 08 تیر 1391, 10:29 صبح
به جای file.Name باید از FullName استفاده بشه
_message.Attachments.Add(new Attachment(file.FullName));

samadblaj
پنج شنبه 08 تیر 1391, 12:15 عصر
سلام
آقای mehdiizad (http://barnamenevis.org/member.php?244106-mehdiizadi) لطفا اگه مشکلت درست شد و تونستی ایمیل ارسال کنه لطفا سورس برنامه ات رو برا منم بزار.

مرسی

Saeed_m_Farid
پنج شنبه 08 تیر 1391, 12:36 عصر
سورس با کمی تغییرات:
try
{
SmtpClient _SmtpClient = new SmtpClient("smtp.gmail.com");
MailAddressCollection _MailAddressCollection = new MailAddressCollection();
MailMessage _message = new MailMessage();
_message.From = new MailAddress("for.test.all.users@gmail.com");
_message.Body = "Sample Email By Barnamenevis.org";
_message.Subject = "Sample Email By Barnamenevis.org ...";
_message.To.Add("xxx@yahoo.com");
_message.To.Add("yyy@gmail.com");
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"D:\newfolder");
foreach (System.IO.FileInfo file in dir.GetFiles("*.dat"))
_message.Attachments.Add(new Attachment(file.FullName));
_message.Attachments.Add(new Attachment(@"D:\newfolder\Source01.cs"));
_message.Attachments.Add(new Attachment(@"D:\newfolder\Source02.cs"));
_SmtpClient.Port = 587;
_SmtpClient.Credentials =
new System.Net.NetworkCredential(
"for.test.all.users@gmail.com",
"576iran1345");
_SmtpClient.EnableSsl = true;
_SmtpClient.Send(_message);
Application.Restart();
}
catch (Exception ex)
{
MessageBox.Show("Error on SendMail: " + ex.ToString());
}

samadblaj
پنج شنبه 08 تیر 1391, 12:56 عصر
سعید جون شما خودتون تونستید با این کدتون ایمیل (جمیل) ارسال کنید؟

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

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

c-sharp_South
پنج شنبه 08 تیر 1391, 13:28 عصر
آقا سعید و تمام بچه ها واقعا مرسی . زحمت کشیدین.
مشکل با سورس سعید جان کامل کامل کامل حل شد.
samadblaj (http://barnamenevis.org/member.php?235579-samadblaj) جان شما هم میتونین از همین کدی که آقا سعید گذاشته استفاده کنین.

c-sharp_South
جمعه 09 تیر 1391, 09:16 صبح
راستی یک سوال پیش اومد.
اگه این فایل ها رو توی کامپیوتر پیدا نکنه ایمیل ارسال نمیشه و ارور میده.
چطوری میشه کاری کرد که اگه این فایل ها رو پیدا کرد ارسال کنه فایل رو ، اگه هم هر کدوم رو پیدا نکرد خب بره سراغ فایل های بعدی
و در نهایت هم اگه هیچ فایلی پیدا نکنه بالاخره body رو که باید send کنه.
هرچی باهاش کنلجار رفتم نتونستم حلش کنم :گریه:
میشه راهنمایی کنین :خجالت:

Saeed_m_Farid
جمعه 09 تیر 1391, 12:57 عصر
هرچی باهاش کنلجار رفتم نتونستم حلش کنم :گریه:
لازم نبود کشتی بگیرین! هرجا Attachments.Add داشتین قبلش یه ((if (File.Exists(file بذارید.