PDA

View Full Version : آموزش: ارسال ایمیل



far2020
یک شنبه 29 خرداد 1390, 13:21 عصر
اول namespaceهای System.Net.Mail و System.Net رو using کنید بعد کد زیر رو به برنامه‌تون اضافه کنید

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "Pass";
const string subject = "Subject";
const string body = "";

var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
Console.WriteLine("Mail Sended");
}
واسه فرستادن میل کافیه تو خط اول بجای from نام کاربری جیمیل‌تون رو قرار بدید،تو خط دوم بحای to@example.com آدرس فردی که میخواید واسه‌ش میل بفرستید رو قرار بدید،تو خط سوم بجای pass پسورد جیمیل‌تون رو وارد کنید و در خط چهارم موضوع میل‌تون رو بجای Subject قرار بدید.تموم شد:لبخندساده:حالا برنامه رو اجرا کنید.

Farshid007
یک شنبه 29 خرداد 1390, 15:08 عصر
واسه یاهو چی ؟

far2020
یک شنبه 29 خرداد 1390, 17:27 عصر
اول DLLه Microsoft.Office.Interop.Outlook.dll رو به پروژه‌ت اضافه کن بعد Microsoft.Office.Interop.Outlook رو using کن.حالا با این تابع میتونی کار کنی:


public static void sendEMailThroughYahoo()
{
try
{
//mail message
MailMessage mM = new MailMessage();
//Mail Address
mM.From = new MailAddress("from@yahoo.com");//آدرس فرستنده
//emailid to send
mM.To.Add("to@example.com");//آدرس گیرنده
//your subject line of the message
mM.Subject = "subject";//موضوع
//now attached the file
//mM.Attachments.Add(new Attachment(@"C:\\attachedfile.jpg")); // این قسمت رو در صورتی که بخوای فایلی رو ضمیمه کنی میتونی از کامنت خارجش کنی
//add the body of the email
mM.Body = "Your Body of the email.";//متن ایمیل
mM.IsBodyHtml = false;
//SMTP
SmtpClient SmtpServer = new SmtpClient();
//your credential will go here
SmtpServer.Credentials = new System.Net.NetworkCredential("username@yahoo.com", "Pass");//نام کاربری و پسورد
//port number to login yahoo server
SmtpServer.Port = 587;
//yahoo host name
SmtpServer.Host = "smtp.mail.yahoo.com";
//Send the email
SmtpServer.Send(mM);
}//end of try block
catch (System.Exception ex)
{

}//end of catch
}

Farshid007
یک شنبه 29 خرداد 1390, 20:01 عصر
SmtpServer.Credentials = new System.Net.NetworkCredential("username@yahoo.com", "Pass");
این خط برای اتصال به ایمیلی که from هستش، بفرستی درسته ؟
اما نباید اینجوری باشه:
این صفحه (http://mehrbox.ir/Farshid/Support.htm)هم برای ارسال ایمیل هستش (که می فرسته به Aflakain24@yahoo.com)
در صورتی که نمی خواد به سرور ایمیل ارسال کنند(From)کانکت بشه چرتو پرت هم بنویسی تو قسمت ایمیل شما، میل رو می فرسته
پس این راهش نیست

far2020
سه شنبه 31 خرداد 1390, 02:50 صبح
من امتحان کرددم.اگه تو from شناسه یا پسورد رو اشتباه وارد کنی چیزی فرستاده نمیشه.

sogol67_2007
سه شنبه 31 خرداد 1390, 05:48 صبح
سلام برای دریافت ایمیل باید چه کدی نوشت؟؟؟؟؟؟؟؟؟

far2020
سه شنبه 31 خرداد 1390, 13:32 عصر
اینجا (http://www.emailarchitect.net/eagetmail/kb/csharp.aspx?cat=15) میتونی مطالب خوبی پیدا کنی.اینم (https://rapidshare.com/files/3254448767/ConsoleApplication32.rar)یه مثال.
تو برنامه بجای pop3.example.com باید آدرس سرور pop3ه سرور ایمیل رو وارد کنی مثلا مال جیمیل pop.gmail.com هست‌ش.و بحای user@eample.com شناسه و بجای pass هم پسوردت رو وارد کنی.برنامه به سرور وصل میشه و ایمیل ها رو دریافت میکنه و تو پوشه‌ای که فایل exeمون تو اون هست(ConsoleApplication32\ConsoleApplication32\b in\Debug) یه Folder بنام inbox میسازه و ایمیل ها رو تو اون ذخیره میکنه.البته DLLای که استفاده کردم نسخه Trial هست.

AlgorithmX
سه شنبه 31 خرداد 1390, 16:07 عصر
اول namespaceهای System.Net.Mail و System.Net رو using کنید بعد کد زیر رو به برنامه‌تون اضافه کنید

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "Pass";
const string subject = "Subject";
const string body = "";

var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
Console.WriteLine("Mail Sended");
}
واسه فرستادن میل کافیه تو خط اول بجای from نام کاربری جیمیل‌تون رو قرار بدید،تو خط دوم بحای to@example.com آدرس فردی که میخواید واسه‌ش میل بفرستید رو قرار بدید،تو خط سوم بجای pass پسورد جیمیل‌تون رو وارد کنید و در خط چهارم موضوع میل‌تون رو بجای Subject قرار بدید.تموم شد:لبخندساده:حالا برنامه رو اجرا کنید.

ممنون ازت دوست عزیز! چندتا سوال:
!- آیا حتما باید ایمیل ما مال شرکت گوگل باشه (جیمیل!) چون زیاد این رو میشه توی سورستون دید!
!- Host = "smtp.gmail.com", چی کار میکنه؟ آیا میشه تغییرش داد؟

haghft
سه شنبه 31 خرداد 1390, 17:20 عصر
ممنون ازت دوست عزیز! چندتا سوال:
!- آیا حتما باید ایمیل ما مال شرکت گوگل باشه (جیمیل!) چون زیاد این رو میشه توی سورستون دید!
!- Host = "smtp.gmail.com", چی کار میکنه؟ آیا میشه تغییرش داد؟
1.نه شما از هر میل سروری که بخوای میتونی استفاده کنی حتی از هاست سایت اگه داشته باشید یا میل سرورهای رایگان.
2.آدرس میل سروره و باید طبق میل سرور تنطیم بشه.
در ضمن هر میل سرور تنظیمات خودشو داره یعنی آدرس،پورت و استفاده یا عدم استفاده از SSL رو شما باید طبق تنطیمات میل سرور در برنامتون تنظیم کنید.

SEZAR.CO
یک شنبه 03 دی 1391, 19:08 عصر
فقط من متوجه نشدم dll را کجا اضافه کنم

SEZAR.CO
دوشنبه 04 دی 1391, 07:21 صبح
اقا بنده موجه نشدم dll Microsoft.Office.Interop.Outlook کجا بزارم
خود dll آز اینترنت گرفتم
با تشکر

KING AMIN
دوشنبه 04 دی 1391, 13:30 عصر
فکر کنم همونجا که میخوای پروژه ات را save کنی

rezarko
یک شنبه 15 بهمن 1391, 15:07 عصر
چه طور میشه یه فایل رو هم با ایمیل فرستاد؟

rezarko
یک شنبه 15 بهمن 1391, 16:10 عصر
MailMessage mailmsg = new MailMessage();
mailmsg.Attachments.Add(new Attachment("FilePath"));


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

sajad.net
یک شنبه 15 بهمن 1391, 16:54 عصر
برای یاهو و جیمیل
class Mail
{
private readonly string _from;
private readonly string _passWord;

public Mail(string from, string passWord)
{
_from = from;
_passWord = passWord;
}


public bool Send(string to, string subject, string body, List<string> attachment=null)
{
var smtpServer = string.Empty;
if (_from.EndsWith("@gmail.com"))
smtpServer = "smtp.gmail.com";
else if (_from.EndsWith("@yahoo.com"))
smtpServer = "smtp.mail.yahoo.com";

var msg = new MailMessage(new MailAddress(_from), new MailAddress(to))
{
Subject = subject,
SubjectEncoding = Encoding.UTF8,
Body = body,
BodyEncoding = Encoding.UTF8,
IsBodyHtml = false
};

if (attachment != null && attachment.Count != 0)
foreach (var attach in attachment)
msg.Attachments.Add(new Attachment(attach));

var client = new SmtpClient(smtpServer, 587)
{
Credentials = new NetworkCredential(_from, _passWord),
EnableSsl = false
};

if (_from.EndsWith("@gmail.com"))
client.EnableSsl = true;
else if (_from.EndsWith("@yahoo.com"))
client.EnableSsl = false;

try
{
client.Send(msg);
return true;
}
catch
{
return false;
}


}
}

negar.rafie
یک شنبه 15 بهمن 1391, 17:06 عصر
نمیدونم چرا با وجود هزاران نمونه و اموزش برای ارسال ایمیل چرا بازم اموزش ارسال ایمیل را میزارید
دوستان اگر میخواید اموزشی درباره ی ایمیل بزارید برای دریافت ایمیل بزارید

r_s1389@yahoo.com
یک شنبه 15 بهمن 1391, 17:34 عصر
نمیدونم چرا با وجود هزاران نمونه و اموزش برای ارسال ایمیل چرا بازم اموزش ارسال ایمیل را میزارید
دوستان اگر میخواید اموزشی درباره ی ایمیل بزارید برای دریافت ایمیل بزارید
سلام دوست عزیز
شما داری راست میگی ولی همه بلد نیستن و یا اینکه بعضی ها فکر میکنن ارسال ایمیل خیلی سخته و اون ذهنیت براشون پیش نمیاد که برم سمت این جور کد نویسی ها و شاید با دیدن این جور تاپیک ها به خودشون میگن که بریم یه نگاهی بکنیم بعد میبینن که خیلی راحت بود
و اما راست میگین برای آموزش دریافت ایمیل هم منم موافقم.

bitcob589
یک شنبه 15 بهمن 1391, 20:50 عصر
در پست 16 کد زیر نوشته شده است وظیفه EnableSsl چیست

EnableSsl = false

AlirezaRad
یک شنبه 15 بهمن 1391, 22:08 عصر
برای یاهو و جیمیل
class Mail
{
private readonly string _from;
private readonly string _passWord;

public Mail(string from, string passWord)
{
_from = from;
_passWord = passWord;
}


public bool Send(string to, string subject, string body, List<string> attachment=null)
{
var smtpServer = string.Empty;
if (_from.EndsWith("@gmail.com"))
smtpServer = "smtp.gmail.com";
else if (_from.EndsWith("@yahoo.com"))
smtpServer = "smtp.mail.yahoo.com";

var msg = new MailMessage(new MailAddress(_from), new MailAddress(to))
{
Subject = subject,
SubjectEncoding = Encoding.UTF8,
Body = body,
BodyEncoding = Encoding.UTF8,
IsBodyHtml = false
};

if (attachment != null && attachment.Count != 0)
foreach (var attach in attachment)
msg.Attachments.Add(new Attachment(attach));

var client = new SmtpClient(smtpServer, 587)
{
Credentials = new NetworkCredential(_from, _passWord),
EnableSsl = false
};

if (_from.EndsWith("@gmail.com"))
client.EnableSsl = true;
else if (_from.EndsWith("@yahoo.com"))
client.EnableSsl = false;

try
{
client.Send(msg);
return true;
}
catch
{
return false;
}


}
}

دوستان راستش من تازه سی شار\ رو شروع کردم. میشه نحوه استفاده از این کلاس رو بهم بگید؟

vahidth
یک شنبه 15 بهمن 1391, 22:19 عصر
اگه میشه یکم دربارش توضیح بده و آموزش دریافت ایمیل رو هم بزار ممنون داداش

hossein_sh2008
دوشنبه 16 بهمن 1391, 11:18 صبح
دوستان راستش من تازه سی شار\ رو شروع کردم. میشه نحوه استفاده از این کلاس رو بهم بگید؟

با تشكر از دوست خوبمون كه اين كدها را براي دوستان گذاشتند.

نحوه ارسال:
بعد از اينكه يك كلاس ساخته شد و يوزينگ هاي زير رو هم در اون كپي كرديد

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

و كدهاي بالا را در اون كپي كرديد براي دكمه ارسال كد زير را مي نويسيد:


Mail mail_s = new Mail("رمز عبور", "ايميل فرستنده--همون نام كاربري ايميل");
//ليست فايل هاي پيوستي
List<string > list = new List<string >();
list.Add("C:\\1.jpg");

bool sended = mail_s.Send(b_txt.Text, mozoh_txt.Text, matn_txt.Text, list );
if (sended == true)
{
MessageBox.Show("ارسال ايميل با موفقيت ارسال گرديد");
}
else
{
MessageBox.Show("ارسال ايميل با مشكل روبه رو شده است،لطفا دوباره سعي فرماييد", "ارسال ايميل", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
b_txt.Text همون ايميل گيرنده هستش
list همون ليست فايل هاي پيوستي

كلاس ارسال ايميل:
99514
راستي بعضي مواقع وقتي فرستنده ايميل ياهو باشه گير ميده و فايل پيوست را نمي فرسته و خطاي زير رو ميده كه اگر از جيميل استفاده كنيد براي فرستادن بهتره
Failure sending mail

تشكر يادتون نره

AlirezaRad
دوشنبه 16 بهمن 1391, 14:56 عصر
دوستان این ارور رو میده:
99525

sajad.net
دوشنبه 16 بهمن 1391, 16:15 عصر
این یه نمونه از برنامه البته توی کلاسش هم یه تغییراتی دادم

99530


این مثال برای دریافت ایمیل البته برای جیمیل
من ایمیل های جیمیل رو دریافت کردم باهاش ولی بدنه ایمیل رو به صورت کد نشون میده

99531

batman1
چهارشنبه 30 دی 1394, 21:59 عصر
دوستان،حالا من میخوام که یه همچین کدی رو داخل تایمر بندازم،تا هر 30ثانیه یک بار این کد فرستاده بشه(برای اینکه اسپم نشه.)
ممنون میشم راهش رو بگید.