صفحه 1 از 4 123 ... آخرآخر
نمایش نتایج 1 تا 40 از 125

نام تاپیک: مقاله::مرجع کامل ارسال ایمیل در دات نت 2

  1. #1
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336

    مقاله::مرجع کامل ارسال ایمیل در دات نت 2

    با سلام
    مقاله ای که ارائه داده شده است حاصل ساعتها جستجو،مطالعه و ترجمه میباشد
    و با توجه به نبود یک منبع کامل چه به صورت فارسی و چه به صورت انگلیسی در مورد ارسال ایمیل در دات نت 2 و استفاده برنامه نویسان از تکنیک های دات نت 1،امیدوارم این مجموعه حسن ختامی بر تمام سردرگمی های ارسال ایمیل در دات نت 2 باشد
    امیدوارم این مقاله به عنوان مرجعی کامل،مشکل گشای برنامه نویسان فارسی زبان باشد
    توجه:کلیه حقوق این مقاله متعلق به سایت DotNetSource.Com میباشد.استفاده از مطالب این مقاله با ذکر نام منبع و نویسنده بلامانع است
    _____________________________________
    کلمات کلیدی:

    ارسال ایمیل،دات نت 2،Email،Sending Email،.Net 2
    _____________________________________
    بخش اول


    مقدمه:

    فضای نام System.Net.Mail

    System.Net.Mail یک فضای نام که برای ارسال ایمیل در دات نت 2 استفاده میشود.بر خلاف system.web.mail که در دات نت 1 معرفی شده، System.Net.Mail بر پایه کتابخانه های CDO/CDOSYS ساخته نشده است.در عوض زمینه ساخت آن بر اساس عدم استفاده از Com Introp بوده،یعنی بر اساس هیچ نوع کتابخانه ی Com ساخته نشده است

    System.Net.Mail یک کلاس کاملا جدید برای ساخت و ارسال ایمیل معرفی کرده است
    گرچه بعضی از ویژگیهای system.web.mail حذف شده، اما فضای نام System.Net.Mail بسیار فراگیر تر و تطبیق پذیر تر از system.web.mail است که وابسته به کتابخانه CDO میباشد


    برای ارسال ایمیل در دات نت به چه چیزی نیازمندیم؟

    قبل از هر چیزی لازم است که دات نت فریم ورک را نصب کنید
    سپس system.dll را به عنوان مرجع (reference) به صفحه معرفی کنید(به صورت اتوماتیک به صفحات اضافه میشود).
    برای ایجاد و ارسال ایمیل از فضای نام System.Net.Mail استفاده میشود
    در این مرحله شما با برنامه نویسی ،به پیکربندی برنامه خود میپردازید
    شما نیازمند یک سرور واسط برای ارسال ایمیل هستید
    یک سرور واسط (Relay Server) که یک سرور ایمیل(Email Server) یا یک SMTP سرور /سرویس است که ارسال ایمیل را مدیریت میکند.(Handle)
    System.Net.Mail بسادگی ایمیل را برای سرور ارسال میکند و سرور ایمیل مسئول رساندن ایمیل به مقصد نهایی میباشد

    سرور واسط

    یک واسط یک سرویس است،که به شما اجازه میدهد ایمیل ارسال کنید
    واسط به طور معمول یک سرور ایمیل (Mail Server)کامل است یا برای سرویس SMTP پیکربندی شده است
    بطور مثال:

    ایمیل سرور ها(Mail Server):

    Microsoft Exchange
    IMail by IPSwitch
    Mail Enable by Mail Enable
    سرویس های SMTP:

    سرویس SMTP که بر روی IIS نصب میشود
    (System.Net.Mail) SNM ایمیل را برای سرور واسط ارسال میکند و سرور ایمیل مسئول رساندن ایمیل به مقصد نهایی میباشد
    زمانی که ایمیل برای سرور واسط ارسال میگردد،شما باید اجازه دسترسی به آن سرور را داشته باشید.دلیل این امر مسئله SPAM ها میباشد
    دسترسی به سرورهای واسط به طور طبیعی یا از طریق IP Address یا username/password امکان پذیر میباشد

    سرویس SMTP در IIS

    سرویس IIS SMTP یک سرویس برای ارسال ایمیل میباشد
    این سرویس تمام سرویس های زیر را مدیریت میکند


    MX Record (Mail server location) lookups
    SMTP connections to remote mail servers
    Retries
    Failures


    اطلاعات بیشتر را میتوانید از سایت مایکروسافت بخواهید
    http://www.microsoft.com/mind/1299/s...0/smtp2000.asp

    آیا با استفاده از System.Net.Mail میتوانیم ایمیل هایمان را بخوانیم؟

    جواب نه میباشد.با استفاده از SNM فقط میتوانید ایمیل ارسال کنید
    برای خواندن ایمیل میتوانید از Mime parsing component یا POP3 component استفاده کنید


    نگاهی به کلاس های فضای نام System.Net.Mail:

    MailMessage Class
    MailAddress Class
    Attachment Class
    SmtpClient Class
    AlternateView Class
    Linked Resource

    کلیه کلاس های فوق به طور کامل شرح داده خواهند شد

    کلاس MailMessage:

    کلاس MailMessage ساخت و مدیریت پیغام ایمیل را تامین میکند
    سایر کلاسها به نوعی با این کلاس در ارتباط هستند
    برخی از ویژگی های(Properties) کلاس MailMessage به شرح زیر میباشند


    توضیحات تکمیلی در
    http://msdn2.microsoft.com/en-us/lib...ilmessage.aspx


    مثالی از نحوه استفاده از این کلاس:


    [C#‎]

    MailMessage mail = new MailMessage();
    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");
    mail.Subject = "This is an email";
    mail.Body = "this is the body content of the email.";

    [VB]

    Dim mail As New MailMessage()
    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")
    mail.Subject = "This is an email"
    mail.Body = "this is the body content of the email."
    این نکته در کد بالا قابل توجه است که:
    به این نوع ایمیل که بدنه(Body) آن شامل متن ساده است در اصطلاح Plain Text گفته میشود
    اما بدنه (Body) میتواند شامل تگ های HTML نیز باشد
    جهت استفاده از این امکان باید خاصیت IsBodyHtml را برابر True کنیم
    به مثال زیر توجه کنید:

    [C#‎]

    MailMessage mail = new MailMessage();

    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");

    mail.Subject = "This is an email";
    mail.Body = "this is a sample body with html in it. <b>This is
    bold</b> <font color=#336699>This is blue</font>";
    mail.IsBodyHtml = true;

    SmtpClient smtp = new SmtpClient("127.0.0.1");
    smtp.Send(mail);

    [VB]

    Dim mail As New MailMessage()

    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")

    mail.Subject = "This is an email"
    mail.Body = "this is a sample body with html in it. <b>This is
    bold</b> <font color=#336699>This is blue</font>"
    mail.IsBodyHtml = True

    Dim smtp As New SmtpClient("127.0.0.1")
    smtp.Send(mail)
    پایان بخش اول

  2. #2
    کاربر دائمی آواتار habedijoo
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    538
    بنظر شما ، این که با این روش میشه به راحتی با آدرس ایمیل دیگران اقدام به ارسال ایمیل نمود، یک ضعف فاحش نیست.

  3. #3
    کاربر دائمی آواتار peymannaji
    تاریخ عضویت
    مهر 1385
    محل زندگی
    تو یکی از صفرهای گوگل ...
    پست
    881
    سلام دوست عزیز با سپاس از زحمت جنابعالی بخاطر تهیه مقاله ارزشمندتون ...

  4. #4
    نقل قول نوشته شده توسط habedijoo مشاهده تاپیک
    بنظر شما ، این که با این روش میشه به راحتی با آدرس ایمیل دیگران اقدام به ارسال ایمیل نمود، یک ضعف فاحش نیست.
    سلام
    این ضعفی هست که توی پروتکل SMTP موجود هست . از طرفی تحقیقات پلیس فدرال آمریکا نشون داده که 85% هرزنامه ها از این طریق ارسال میشن و به همین دلیل موارد رو به IEEE گزارش داده و قراره توی تعاریف جدیدشون برطرف بشه.البته ناگفته نمونه که اکثر ایمیل های جعلی به اینصورت Bulk میشن.
    ممنون از دوست خوبمون برای مقاله اش
    موفق باشید

  5. #5
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    بخش دوم

    کلاس MailAddress:

    از این کلاس برای ساختن آدرس ایمیل استفاده میشود
    از این کلاس میتوان در ویژگی های(Properties) :

    MailMessage.From
    MailMessage.To
    MailMessage.CC
    MailMessage.BCC

    استفاده کرد
    از بین این ویژگی ها ،ویژگی .From یک ایمیل حقیقی است(یعنی یک ایمیل را به عنوان فرستنده میتوان معرفی کرد)
    اما سایر ویژگی ها، کلکسیونی از ایمیل ها را دریافت میکنند
    برخی از ویژگی های(Properties) کلاس MailAddress به شرح زیر میباشند


    توضیحات تکمیلی در
    http://msdn2.microsoft.com/en-us/lib...iladdress.aspx

    مثالی از نحوه استفاده از این کلاس:

    [C#‎]

    MailMessage mail = new MailMessage();

    mail.From = new MailAddress("me@mycompany.com", "Steve James");

    mail.To.Add("you@yourcompany.com");
    mail.To.Add("you2@yourcompany.com");

    mail.CC.Add("cc1@yourcompany.com");
    mail.CC.Add("cc2@yourcompany.com");

    mail.Bcc.Add("blindcc1@yourcompany.com");
    mail.Bcc.Add("blindcc2@yourcompany.com");

    mail.Subject = "This is an email";
    mail.Body = "this is the body content of the email.";

    [VB]

    Dim mail As New MailMessage()

    mail.From = New MailAddress("me@mycompany.com", "Steve James")

    mail.To.Add("you@yourcompany.com")
    mail.To.Add("you2@yourcompany.com")

    mail.CC.Add("cc1@yourcompany.com")
    mail.CC.Add("cc2@yourcompany.com")

    mail.Bcc.Add("blindcc1@yourcompany.com")
    mail.Bcc.Add("blindcc2@yourcompany.com")

    mail.Subject = "This is an email"
    mail.Body = "this is the body content of the email."


    این نکات در کد بالا قابل توجه است که:

    1. اگر بخواهیم گیرنده ایمیل وقتی ایمیل را دریافت میکند به جای آدرس ایمیل، نام تعیین شده توسط ما برای آن نمایش داده شود به صورت زیر عمل میکنیم


    mail.From = new MailAddress("me@mycompany.com", "Steve James")


    2. اگر بخواهیم نام فرستنده به صورت فارسی یا هر زبان دیگر نمایش داده شود به صورت زیر عمل میکنیم


    mail.From = new MailAddress("me@mycompany.com", "فارسی",System.Text.Encoding.GetEncoding("win dows-1256"))


    3. از روش ذکر شده بالا میتوانید برای ویژگیهای To,Bcc,CC نیز استفاده کنید

    4. چون ویژگیهای To,Bcc,CC میتوانند کلکسیونی از ایمیل ها را دریافت کنند میتوانید با فراخوانی مکرر تابع ADD ایمیل های فراوانی را به آنها اضافه کنید


    آیا میدانید تفاوت Toو BCC و CC در چیست؟

    To به معنای گیرنده اصلی ایمیل میباشد
    CC مخفف Carbon Copy میباشد و زمانی از آن استفاده میشود که بخواهیم یک کپی از ایمیل را برای شخص دیگری بفرستیم
    Bcc مخفف Blind Carbon Copy میباشد.و زمانی از آن استفاده میشود که بخواهیم یک کپی از ایمیل را برای شخصی بفرستیم،به صورتی که CC و To متوجه ارسال ایمیل برای شخص سوم نشوند
    اما BCC متوجه ارسال ایمیل به To و BCC خواهد شد

    کلاس Attachment:

    از این کلاس جهت ساخت و مدیریت ضمائم متعلق به یک شی MailMessage استفاده میشود
    ضمیمه میتواند آدرس یک فایل یا یک Stream باشد.این قابلیت باعث میشود ما بتوانیم هر نوع داده ای را به ایمیل خود ضمیمه کنیم
    توضیحات تکمیلی در
    http://msdn2.microsoft.com/en-us/lib...ttachment.aspx

    مثالی از نحوه استفاده از این کلاس:

    [C#‎]

    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");
    mail.Subject = "This is an email";
    mail.Body = "this content is in the body";
    mail.Attachments.Add(new Attachment("c:\\temp\\example.txt"));
    mail.Attachments.Add(new Attachment("c:\\temp\\example2.txt"));
    mail.Attachments.Add(new Attachment("c:\\temp\\example3.txt"));

    [VB]

    Dim mail As New MailMessage()
    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")
    mail.Subject = "This is an email"
    mail.Body = "this content is in the body"
    mail.Attachments.Add(New Attachment("c:\temp\example.txt"))
    mail.Attachments.Add(New Attachment("c:\temp\example2.txt"))
    mail.Attachments.Add(New Attachment("c:\temp\example3.txt"))


    مثالی از نحوه استفاده از این کلاس در استفاده از Stream:

    [C#‎]

    MailMessage mail = new MailMessage();

    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");

    mail.Subject = "This is an email";
    mail.Body = "this content is in the body";

    string s = "this is some text";
    byte[] data = System.Text.Encoding.ASCII.GetBytes(s);


    System.IO.MemoryStream ms = new System.IO.MemoryStream(data);

    mail.Attachments.Add(new Attachment(ms, "example.txt","text/plain"));

    SmtpClient smtp = new SmtpClient("127.0.0.1");
    smtp.Send(mail);

    [VB]

    Dim mail As New MailMessage()

    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")

    mail.Subject = "This is an email"
    mail.Body = "this content is in the body"

    Dim s As String = "this is some text"
    Dim data As Byte() = Encoding.ASCII.GetBytes(s)

    Dim ms As New IO.MemoryStream(data)

    mail.Attachments.Add(New Attachment(ms, "example.txt", "text/plain"))

    Dim smtp As New SmtpClient("127.0.0.1")
    smtp.Send(mail)

    پایان بخش دوم

  6. #6
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    بخش سوم

    کلاس SmtpClient:

    کلاس SmtpClient مسئولیت ارسال یا نقل و انتقال ایمیل را بر عهده دارد
    کلاس SmtpClient توانایی حمل محتویات ایمیل بر روی شبکه دارد،یا میتواند ایمیل را به صورت یک فایل سیستم در سرویس SMTP IIS در داخل پوشه
    Pickup Directory به شبیه به فرمت ذکر شده در RFC822 ذخیره کند
    (جهت مشاهد RFC میتوانی به سایت rfc-editor.org مراجعه کنید)
    کلاس SmtpClient میتواند ایمیل را هم به صورت هم زمان(Synchronously) و هم به صورت غیر هم زمان(Asynchronously) ارسال کند
    کلاس SmtpClient ارسال ایمیل به صورت SSL را هم جهت اهداف امنیتی پشتیبانی میکند


    برخی از ویژگی های(Properties) کلاس SmtpClient به شرح زیر میباشند


    توضیحات تکمیلی در
    http://msdn2.microsoft.com/en-us/lib...mtpclient.aspx
    مثالی از نحوه استفاده از این کلاس:


    [C#‎]

    using System.Net;

    MailMessage mail = new MailMessage();
    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");
    mail.Subject = "This is an email";
    mail.Body = "this is the body content of the email.";
    SmtpClient smtp = new SmtpClient("127.0.0.1");

    smtp.Credentials = new NetworkCredential("username", "secret");

    smtp.Send(mail);

    [VB]

    Dim mail As New MailMessage()
    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")
    mail.Subject = "This is an email"
    mail.Body = "this is the body content of the email."
    Dim smtp As New SmtpClient("127.0.0.1")

    smtp.Credentials = New Net.NetworkCredential ("username", "secret")

    smtp.Send(mail)

    این نکات در کد بالا قابل توجه است که:

    1. زمانی که شما جهت استفاده از سرور واسط (ایمیل سرور) مجبور به تعیین هویت هستید و با ارائه نام کاربری و کلمه عبور امکان استفاده از سرویس سرور واسط محیا خواهد شد،ناچار به ارسال نام کاربری و کلمه عبور برای سرور واسط هستید.این امر با استفاده از دستود زیر امکان پذیر خواهد شد



    smtp.Credentials = new NetworkCredential("username", "secret")



    NetworkCredential در فضای نام System.Net قرار دارد و جهت استفاده از آن باید با این فضای نام به عنوان یکی از مراجع انتخاب شود

    2. حال سوالی که در اینجا در ذهن شما ایجاد میشود این است که این نام کاربری و کلمه عبور را از کجا بدست آوریم؟

    جواب این سوال بسیار ساده است،و اجازه دهید پرسشی دیگر جهت آشکار شدن موضوع بیان کنیم،و آن پرسش این است، که شما جهت استفاده از سرویس ایمیل Yahoo چطور عمل میکنید؟
    اگر دقت کرده باشید به طور معمول Yahoo هم جهت استفاده از سرویس ایمیل خود، به شما اجازه نخواهد داد به عنوان یک ناشناس ایمیل ارسال و یا دریافت کنید حتما باید دارای ایمیلی از این ایمیل سرور باشید

    توجه:امکان ارسال ایمیل به صورت ناشناس و با ایمیل جعلی توسط سرور Yahoo و دیگر سرور های مجانی و جود دارد که خارج از بحث ما میباشد

    و با ارائه نام کاربری (ایمیل) و کلمه عبور امکان بهره برداری از سرویس های این ایمیل سرور مقدور خواهد شد

    پس ما برای ارائه کلمه عبور به ایمیل سرور باید دارای یک ایمیل از آن ایمیل سرور باشیم
    ایجاد ایمیل بر روی هاست، از طریق ورود به قسمت کنترل (Control Panel) سایت و ورود به قسمت مدیریت ایمیل ها امکان پذیر است

    توجه: به هیچ عنوان از ایمیلی که اطلاعات داخل آن برای سایت حائز اهمیت میباشد جهت ارسال ایمیل استفاده نکنید
    ایمیل هایی همچون Info و Support و...

    توجه:هنگام استفاده از دستور زیر باید به جای username ، ایمیل را به صورت کامل و به جای Mypassword ، کلمه عبور ایمیل را وارد کنید.


    smtp.Credentials = new NetworkCredential("Send@Yoursite.com","Mypassword"  )



    3. نکته ای دیگر این که نام یا Ip Address سرور واسط (ایمیل سرور) سرویس دهنده خود را از کجا به دست بیاوریم؟

    در جواب این سوال باید گفت،عموما سرویس دهنده های هاست در ایمیل ارسالی برای شما که در آن اطلاعات هاست شما قرار دارد اطلاعات این سرور را ارسال میکنند اما تماس با واحد پشتیبانی سرویس دهنده هاست بهترین گزینه است

    حال اگر نخواستید از گزینه بالا استفاده کنید از روش زیر استفاده کنید

    با داشتن یک فایروال مناسب و آنتی ویروس بروز وارد سایت زیر شود


    http://www.mob.net/~ted/tools/mx.php3



    و در محل مشخص شده نام هاست خود را به طور کامل تایپ کنید
    اندکی تامل کنید تا پاسخ شما که نام سرور ایمیل هاست شما میباشد برای شما لیست گردد
    با دستور Telnet به صورت زیر میتوانید به ایمیل سرور خود متصل شوید
    در منوی Start گزینه Run را انتخاب کنید
    و در Run دستور CMD را تایپ کنید تا پنجره Command Prompt بازشود
    سپس دستور زیر را وارد کنید


    telnet mail.YourSite.Com 25



    بعد از دستور Telnet آدرسی را که به عنوان ایمیل سرور از طریق مرحله قبل به دست آوردیم را وارد میکنیم

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


    متوجه خواهید شد که در اکثرموارد بعد از عدد 220 نام ایمیل سرور دیگری نمایش داده میشود.بهتر است از این ایمیل سرور معرفی شده در این قسمت استفاده کنید
    پس از توضیحات متوجه میشوید که جهت ارسال ایمیل باید خط زیر را به این صورت تنظیم کنید(با توجه به مثال بالا و به دست آوردن ایمیل سرور از نام بدست آمده استفاده میکنیم)
      

    SmtpClient smtp = new SmtpClient("mailserver1.parsdata.com");
    یــا
    Dim smtp As New SmtpClient("mailserver1.parsdata.com")


    4. نکته ای دیگر این که از کجا بفهمیم که برای استفاده از امکانات یک سرور واسط،حتما باید به آن نام کاربری و کلمه عبور بدهیم؟

    برای فهمیدن این موضوع به صورت زیر عمل میکنیم
    بعد از استفاده از دستور telnet به همان شکل توضیح داده شده،در اولین خط دستور ،این دستور را وارد کنید.

    Auth login




    اگر بعد از دستور فوق جوابی شبیه پیغام زیر را بگیرید که با عدد 334 شروع میشود ،قطعا جهت استفاده از ایمیل سرور باید نام کاربری و کلمه عبور داشته باشیم


    پایان بخش سوم

  7. #7
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    من برای این مقاله خیلی زحمت کشیدم
    از استقبال کم دوستان که نه نظر دادن نه تشکر کردن دل سرد شدم
    شاید به درد کسی نمیخوره؟!!
    یا به خاطر ...

  8. #8
    نه داداش ، خیلی ها از این مقاله شما استفاده می کنند و خواهند کرد
    دمت گرم ، ادامه بده

  9. #9
    کاربر دائمی آواتار habedijoo
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    538
    سلام
    دوست عزیز ضمن تشکر خیلی زیاد از زحمت بسیار زیاد شما و اینکه مطمئن باش این مقاله شما راهگشای خیلی از دوستان قرار خواهد گرفت ، باید عرض کنم بعضی از اخلاقیات حاکم بر جامعه ما چندان خوش آیند نیست . مقایسه ای ما بین تعداد بازید های این تاپیک و نظرات و تشکرات داده شده بکن . بعد خواهی دید که ایرانی ها کلا بی تفاوت هستند . اصلا به مسائل رواشناسی این قضایا، که فشردن یه دکمه تشکر علاوه بر قدر دانی از کار شما براحتی میتونه شما رو برای نوشتن مقاله بعدی ترغیب کنه ، توجهی ندارند . پس به عنوان یه دوست پیشنهاد میکنم توی این مملکت در پی افکار تراکنشی نباش که بی تفاوتی از سر و پای مملکت می بارد .
    باز هم از رحمت شما تشکر میکنم و امیدوارم باز هم شاهد مقالات بعدی و مفید شما باشیم .

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

  10. #10
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    بخش چهارم

    کلاس Alternate View:

    زمانی از این کلاس استفاده میکنیم که بخواهیم یک کپی از ایمیل را به فرمت دیگری تهیه کنیم.کاربرد این کپی در زمانی مشخص میشود که وقتی شخص از یک برنامه یا به طور کلی یک Reader برای دیدن ایمیل خود استفاده میکند،که این برنامه یا Reader قابلیت تفسیر تگ های HTML متن ایمیل را ندارد.پس نسخه دیگر از متن ایمیل که متن ساده است نمایش داده خواهد شد
    زمانی که از این روش استفاده میکنید به اصلاح گفته میشود که شما یک Multi-Part MIME (Multipurpose Internet Mail Extensions) message ساخته اید
    اصل پیشگیری از خطا و مدیریت استثنا ها حکم میکند که در ارسال ایمیل هایمان از این روش استفاده کنیم تا اطمینان حاصل کنیم که متن ایمیل در هر حالتی قابل خواندن است

    برخی از ویژگی های(Properties) کلاس Alternate View به شرح زیر میباشند


    توضیحات تکمیلی در
    http://msdn2.microsoft.com/en-us/lib...rnateview.aspx

    مثالی از نحوه استفاده از این کلاس:


    [C#‎]

    MailMessage mail = new MailMessage();
    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");
    mail.Subject = "This is an email";

    AlternateView plainView =
    AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", null, "text/plain");

    AlternateView htmlView =
    AlternateView.CreateAlternateViewFromString("<b>th is is bold text, and viewable by those mail clients that support html</b>", null, "text/html");

    mail.AlternateViews.Add(plainView);
    mail.AlternateViews.Add(htmlView);

    SmtpClient smtp = new SmtpClient("127.0.0.1");
    smtp.Send(mail);


    [VB]

    Dim mail As New MailMessage()
    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")
    mail.Subject = "This is an email"

    Dim plainView As AlternateView =
    AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", Nothing, "text/plain")

    Dim htmlView As AlternateView =
    AlternateView.CreateAlternateViewFromString("<b>th is is bold text, and viewable by those mail clients that support html</b>", Nothing, "text/html")

    mail.AlternateViews.Add(plainView)
    mail.AlternateViews.Add(htmlView)

    Dim smtp As New SmtpClient("127.0.0.1")
    smtp.Send(mail)


    این نکته در کد بالا قابل توجه است که:

    در کد زیر


    AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", null, "text/plain");


    به جای "text/plain" میتوانید از قطعه کد زیر ا ستفاده کنید

    System.Net.Mime.MediaTypeNames.Text.Plain


    سایر مقادیری که میتوانید برای این قسمت در نظر بگیرید به شرح ذیل میباشند که به ضرورت از آنها استفاده خواهد شد


    System.Net.Mime.MediaTypeNames.Text.Html
    System.Net.Mime.MediaTypeNames.Text.RichText
    System.Net.Mime.MediaTypeNames.Text.Xml


    کلاس Linked Resource:

    آخرین کلاس،کلاس Linked Resource میباشد.از این کلاس جهت گنجاندن عکس در ایمیل استفاده میشود
    برای گنجاندن عکس در ایمیل شما باید یک Alternate view با فرمت HTML بسازید و در این Alternate view از یک تگ <image> استفاده کنید که به یک
    ContentId )CID) از Linked Resource اشاره میکند
    ContentId )CID) میتواند نام یک فایل تصویری در آدرسی مشخص باشد

    توضیحات تکمیلی در
    http://msdn2.microsoft.com/en-us/lib...dresource.aspx
    مثالی از نحوه استفاده از این کلاس:


    [C#‎]

    MailMessage mail = new MailMessage();

    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");

    mail.Subject = "This is an email";

    AlternateView plainView =
    AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", null, "text/plain");

    AlternateView htmlView =
    AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:companylogo>", null,"text/html");

    LinkedResource logo = new LinkedResource( "c:\\temp\\logo.gif" );
    logo.ContentId = "companylogo";
    htmlView.LinkedResources.Add(logo);

    mail.AlternateViews.Add(plainView);
    mail.AlternateViews.Add(htmlView);


    SmtpClient smtp = new SmtpClient("127.0.0.1");
    smtp.Send(mail);

    [VB]

    Dim mail As New MailMessage()
    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")
    mail.Subject = "This is an email"

    Dim plainView As AlternateView =
    AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", Nothing, "text/plain")

    Dim htmlView As AlternateView =
    AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:companylogo>", Nothing,"text/html")

    Dim logo As New LinkedResource("c:\temp\logo.gif")
    logo.ContentId = "companylogo"

    htmlView.LinkedResources.Add(logo)

    mail.AlternateViews.Add(plainView)
    mail.AlternateViews.Add(htmlView)


    Dim smtp As New SmtpClient("127.0.0.1")
    smtp.Send(mail)

    پایان بخش چهارم

  11. #11
    سلامخسته نباشید.دستون درد نکندمن میخواستم بدونم چگونه میشود این نمونه کدها را بر روی سیستم خودم امتحان کنم.مثلا میل ها به یک پوشه بر روی سیستم فرستاده شود.؟و نیاز نباشد که برنامه روی سرور امتحان شود.؟اگر با یک نمونه کد توضیح داده شود ممنون میشوم.

  12. #12
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    سلامخسته نباشید.دستون درد نکند
    ممنونم

    من میخواستم بدونم چگونه میشود این نمونه کدها را بر روی سیستم خودم امتحان کنم.مثلا میل ها به یک پوشه بر روی سیستم فرستاده شود.؟و نیاز نباشد که برنامه روی سرور امتحان شود.؟اگر با یک نمونه کد توضیح داده شود ممنون میشوم.
    به این شکل که شما می فرماید نمیشه
    میتونین با نصب کردن سرویس SMTP بر روی IIS خودتون (در مقاله هم ذکر شده که این سرویس وجود داره)
    و با استفاده از همین مثال ها،ایمیل هایی به ایمیل خودتون در Yahoo یا Gmail بفرستید و
    یا میتونین از ایمیل سرور های مجانی استفاده کنید
    مثل:
    MX1.mai.yahoo.com
    یا
    Smtp.gmail.com
    یا
    Mx.google.com

  13. #13
    توی iis یک Default SMTP Virtual Server وجود دارد.چیز دیگری باید نصب کنیم؟چگونه؟
    مثلا من کد زیر را امتحان میکنم

    ProtectedSub Button2_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles Button2.Click
    Dim mail AsNew MailMessage()
    mail.From =
    New MailAddress("f@yahoo.com")
    mail.To.Add(
    "b@yahoo.com")
    mail.Subject =
    "This is an email"
    Dim plainView As AlternateView = AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", Nothing, "text/plain")

    Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:companylogo>", Nothing, "text/html")

    Dim logo AsNew LinkedResource("c:\temp\logo.gif")
    logo.ContentId =
    "companylogo"
    htmlView.LinkedResources.Add(logo)
    mail.AlternateViews.Add(plainView)
    mail.AlternateViews.Add(htmlView)

    Dim smtp AsNew SmtpClient("127.0.0.1")
    smtp.Send(mail)
    EndSub


    غیر از تنظیم ایمیل های معتبر به تنظیم دیگری احتیاج نیست؟میل فرستاده میشود؟

  14. #14
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    خوب پست قبلم رو تصحیح میکنم و فکر میکنم این بهتر باشه
    میتونید ایمیل ها رو به خود SMTP تحویل بدین.و اون ایمیل رو در دایرکتوری C:\Inetpub\mailroot\Pickup قرار میده و اگه موفق به ارسال نشه به C:\Inetpub\mailroot\Queue انتقال میده میتونی بری و ایمیل رو مشاهده کنی
    اینطوری درگیر ایمیل سرور ها هم نمیشی و جنبه آموزشی حفظ میشه
    این قسمت کد :

    Dim smtp AsNew SmtpClient("127.0.0.1")
    smtp.Send(mail)

    رو به این شکل تصحیح کن:

    Dim smtp As New SmtpClient("127.0.0.1")
    smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis
    Try
    smtp.Send(mail)
    Catch ex As Exception
    Response.Write(ex)
    End Try

  15. #15
    دوست من همیشه سعی کن به خاطر خدا ودر راه اون علمتو در اختیار دیگران قرار بدی ...

    اینجوری دیگه از هیچ چی ناراحت نمیشی.....

    گرچه تشکر کردن همونطور که دوستمون گفتن باعث انگیزه میشه ولی......


    موفق باشی..

  16. #16
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    دوست من همیشه سعی کن به خاطر خدا ودر راه اون علمتو در اختیار دیگران قرار بدی ...
    اگه اینطور نبود و انگیزه ای جز کمک به بقیه نداشتم اینجا ارائه نمیدادم
    و مقاله رو برای خودم نگه میداشتم
    چون هدف اولیه من یاد گیری خودم بوده،و خواستم دیگران هم بهره ای ببرن

    اینجوری دیگه از هیچ چی ناراحت نمیشی.....
    ناراحت نشدم،چون بحث برای خودم خیلی سوال داشت،برام جالب بود که چرا کسی نظری نمیده
    و فکر کردم کار بیهوده ای انجام دادم

    گرچه تشکر کردن همونطور که دوستمون گفتن باعث انگیزه میشه ولی......
    برای جمع کردن تشکر اینجا فعالیت نمیکنم(چون اگه اینطوری باشه وقتم رو تلف کردم)

    اصل یاد بگیر و به دیگران هم یاد بده رو قبول دارم

    موفق باشی..
    ممنون از لطف شما

  17. #17
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    بخش پنجم

    تنظیم اولویت (Priority) ایمیل:

    گرچه تعیین اولویت ایمیل به وسیله هدر ها (Header) کنترل میشود،اما در فضای نام System.Net.Mail تعیین اولویت پیغام جزو ویژگی های شی ایجاد شده از کلاس MailMesseage میباشد
    ویژگی Priority میتواند مقادیر زیر را دریافت کند


    مثالی از نحوه استفاده از این ویژگی:


    [C#‎]

    MailMessage mail = new MailMessage();

    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");

    mail.Subject = "This is an email";
    mail.Body = "this is the body content of the email.";

    mail.Priority = MailPriority.High;

    SmtpClient smtp = new SmtpClient("127.0.0.1");
    smtp.Send(mail);

    [VB]

    Dim mail As New MailMessage()

    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")

    mail.Subject = "This is an email"
    mail.Body = "this is the body content of the email."

    mail.Priority = MailPriority.High

    Dim smtp As New SmtpClient("127.0.0.1")
    smtp.Send(mail)

    اضافه کردن Reply-To به هدر ایمیل :

    همانند ویژگی Priority ،هدر Reply-Toنیز توسط شی ایجاد شده از MailMesseage قابل تنظیم میباشد
    از این ویژگی جهت تعیین ایمیلی به عنوان گیرنده پاسخ استفاده میشود
    وقتی کاربر ایمیل را می بیند و قصد ارسال پاسخ آن را دارد،ایمیل تعیین شده با این ویژگی به عنوان دریافت کننده پاسخ میباشد

    مثالی از نحوه استفاده از این ویژگی:


    [C#‎]

    MailMessage mail = new MailMessage();

    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");

    mail.Subject = "This is an email";
    mail.Body = "this is the body content of the email.";

    mail.ReplyTo = new MailAddress("SomeOtherAddress@mycompany.com");

    SmtpClient smtp = new SmtpClient("127.0.0.1");
    smtp.Send(mail);

    [VB]

    Dim mail As New MailMessage()

    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")

    mail.Subject = "This is an email"
    mail.Body = "this is the body content of the email."

    mail.ReplyTo = New MailAddress("SomeOtherAddress@mycompany.com")

    Dim smtp As New SmtpClient("127.0.0.1")
    smtp.Send(mail)




    اضافه کرده header های دلخواه به ایمیل:

    آیا تا به حال به هدر هایی که همراه با ایمیلی که برای شما ارسال میگردد دقت کرده اید؟
    این هدرها دارای اطلاعات جالب و مفیدی از ارسال کننده ایمیل میباشند
    برخی از این هدر ها ثابت و برخی دیگر به وسیله فرستنده قابل تغییر میباشند
    حتی شما قادر خواهید بود اطلاعات دلخواه خود را در هدر ایمیل های ارسالی قرار دهید
    برای اضافه کردن هدر به ایمیل از کلاس MailMessage استفاده میکنیم

    مثالی از نحوه استفاده از این ویژگی:


    [C#‎]

    MailMessage mail = new MailMessage();

    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");

    mail.Subject = "This is an email";
    mail.Body = "this is the body content of the email.";

    mail.Headers.Add("Company", "My Company");
    mail.Headers.Add("Location", "Iran");

    SmtpClient smtp = new SmtpClient("127.0.0.1");
    smtp.Send(mail);

    [VB]

    Dim mail As New MailMessage()

    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")

    mail.Subject = "This is an email"
    mail.Body = "this is the body content of the email."

    mail.Headers.Add("Company", "My Company")
    mail.Headers.Add("Location", "Iran")

    Dim smtp As New SmtpClient("127.0.0.1")
    smtp.Send(mail)


    نمونه ای از نمایش هدرهای ایمیل در Yahoo:


    یکی از هدرهای جالب،هدر Disposition-Notification-To میباشد
    با استفاده از این هدر و معرفی یک ایمیل به عنوان مقدار هدر میتوانید از خوانده شدن ایمیل توسط گیرنده آن باخبر شوید(البته استفاده از این هدر به صورت تضمین شده نمی باشد و درستی عملکرد آن دارای شرایط میباشد به همین جهت مورد بحث و برسی قرار نمیگیرد )

  18. #18
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    بخش پایانی


    پیکر بندی Web.Config جهت ارسال ایمیل:

    اگر تا کنون دقت کرده باشید،در هنگام ارسال ایمیل برخی از قسمتها مشترک میباشد.این قسمت ها به شرح ذیل میباشند

    MailMessage.From
    SmtpClient.Host
    SmtpClient.Port


    با تنظیم یک باره آنها در Web.Config از تنظیم این ویژگی ها در قسمت های مختلف جلوگیری خواهد شد

    <configuration>
    <system.net>
    <mailSettings>

    <smtp from="Me@MyCompany.com">
    <network host="Your Smtp Server" port="25" userName="send@MyCompany.com" password="PWd1"
    defaultCredentials="false" />
    </smtp>

    </mailSettings>
    </system.net>
    <connectionStrings/>
    <system.web>
    </configuration>



    نکته قابل توجه در مورد defaultCredentials میباشد که اگر مقدار true داشته باشد userNameو passwordدر نظر گرفته نمیشوند

    ارسال ایمیل به صورت غیر همزمان:

    SNM امکان ارسال ایمیل به صورت غیر همزمان را فراهم آورده است
    با استفاده از این روش،در زمان ارسال ایمیل به کار دیگری پرداخته میشود و با هندل کردن رخداد اتمام ارسال ایمیل،می توان از ارسال درست یا نادرست ایمیل آگاه شد.
    همانطور که اشاره شد،میتوانیم درستی ارسال ایمیل را تشخیص دهیم
    این امر توسط رخداد SendCompleted کنترل میشود
    در مثال زیر قصد داریم این رخداد را به دلخواه خود هندل کنیم و پیغام مناسب خود را به کاربر نمایش بدهیم

    مثالی از نحوه استفاده از این ویژگی:

      [C#‎]

    MailMessage mail = new MailMessage();
    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");

    mail.Subject = "This is an email";
    mail.Body = "this is the body content of the email.";

    SmtpClient smtp = new SmtpClient("127.0.0.1");

    /*1*/ object user_State = mail;

    /*2*/smtp.SendCompleted += new
    SendCompletedEventHandler(SmtpClient_OnCompleted);

    /*3*/smtp.SendAsync(mail, user_State);
    public static void SmtpClient_OnCompleted(object sender,AsyncCompletedEventArgs e)
    {

    /*4*/ MailMessage mail = (MailMessage)e.UserState;

    string subject = mail.Subject;

    if (e.Cancelled)
    {
    Console.WriteLine("Send canceled for mail with subject[{0}].", subject);
    }
    if (e.Error != null)
    {
    Console.WriteLine("Error {1} occurred when sending mail
    [{0}] ", subject, e.Error.ToString());
    }
    else
    {
    Console.WriteLine("Message [{0}] sent.", subject);
    }
    }
    [VB]

    Dim mail As New MailMessage()

    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")

    mail.Subject = "This is an email"
    mail.Body = "this is the body content of the email."

    Dim smtp As New SmtpClient("127.0.0.1")

    /*1*/ Dim user_State As Object = mail

    /*2*/ AddHandler smtp.SendCompleted, AddressOf SmtpClient_OnCompleted

    /*3*/ smtp.SendAsync(mail, user_State)


    Public Sub SmtpClient_OnCompleted(ByVal sender As Object, ByVal e As ComponentModel.AsyncCompletedEventArgs)

    /*4*/ Dim mail As MailMessage = CType(e.UserState, MailMessage)

    Dim subject As String = mail.Subject

    If e.Cancelled Then
    Console.WriteLine("Send canceled for mail with subject [{0}].",subject)
    End If
    If Not (e.Error Is Nothing) Then
    Console.WriteLine("Error {1} occurred when sending mail [{0}] ", subject, e.Error.ToString())
    Else
    Console.WriteLine("Message [{0}] sent.", subject)
    End If

    End Sub



    نکات قابل توجه:

    به خطوطی که با شماره 1 تا 3 شماره گذاری شده اند توجه کنید
    در خط 1 ،شی بنام user_State به شی ایجاد شده از کلاس Mailmessage منتسب شده است
    و در خط 3 این شی همرا با شی Mailmessage به عنوان ورودی تابع ارسال شده است
    دلیل این امر این است که ما اطلاعاتی از ایمیل را که نیازمندیم از آنها برای نمایش پیغام های مناسب استفاده کنیم در دسترس داشته باشیم

    این شی ارسالی به صورت یک ویژگی(Property) به نام UserSate قابل دسترس خواهد بود (خط 4)
    در خط 2 نیز تابع SmtpClient_OnCompleted را به عنوان تابعی اجرایی برای این رخداد معرفی میکینم


    نوشتن ایمیل در pickup directory:

    نوشتن ایمیل در pickup directory سرویس SMTP در IIS یکی دیگر از امکانات SNM میباشد. pickup directory یک دایرکتوری ویژه است سرویس Smtp مایکروسافت از آن برای ارسال ایمیل استفاده میکند
    تمام فایل های موجود در این دایرکتوری بر اساس سرویس Smtp پردازش و تحویل داده میشود
    اگر پروسس تحویل ایمیل شکست بخورد فایل در queue directory ذخیره میشود
    تا بعدا ارسال شوند
    اگر یک خطای مهلک (fatal error) زخ بدهد فایل به Badmail directory منتقل میشود
    با نوشتن در pickup directory سرعت پردازش بالا میرود چرا که تبادل ارتباط با یک ایمیل سرور دیگر از جریان ارسال ایمیل حذف خواهد شد

    مثالی از نحوه استفاده از این ویژگی:

     [C#‎]

    MailMessage mail = new MailMessage();

    mail.From = new MailAddress("me@mycompany.com");
    mail.To.Add("you@yourcompany.com");

    mail.Subject = "This is an email";
    mail.Body = "this is the body content of the email.";

    SmtpClient smtp = new SmtpClient();
    smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
    smtp.Send(mail);

    [VB]

    Dim mail As New MailMessage()

    mail.From = New MailAddress("me@mycompany.com")
    mail.To.Add("you@yourcompany.com")

    mail.Subject = "This is an email"
    mail.Body = "this is the body content of the email."

    Dim smtp As New SmtpClient()
    smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis
    smtp.Send(mail)


    قابل ذکر است از این روش میتوانید مثال های فوق را بدون اتصال به اینترنت و داشتن سرور واسط و فقط با نصب سرویس SMTP بر روی IIS به صورت عملی انجام دهید
    نتایج کار خود را میتوانید در
    Inetpub\mailroot

    در داخل پوشه Pickup یا Queue مشاهده کنید

  19. #19
    کاشکی علم اونقدر پیشرفت کرده بود که از تو اینترنت می تونستم بپرم و بغلت کنم و دستتو ببوسم که همچین مطلبی رو جمع آوری و ترجمه کردی. واقعا دستت درد نکنه. خسته نباشی عزیز

  20. #20
    آقا واقعا عالی بود دستت درد نکه
    خدا به وقتت برکت بده

  21. #21
    من لم یشکر الخالق لم یشکر المخلوق

    سلام
    من هم به نوبه خودم لازم می دونم از زحمتی که کشیدید تشکر و قدردانی کنم.
    موفق باشید

  22. #22
    واقعا جالب بود . تا به حال مقاله ای به این کاملی در مورد ارسال ایمیل ندیده بودم . خواهشا در پایان به صورت pdf قرار بدید چون به درد خیلی ها میخوره . بازم تشکر

  23. #23
    آقا خیلی عالی بود به قول دوستمون اگر pdf هم بکنید و قرا بدهید روی سایت برای دانلود که عالی میشود

  24. #24

    Bulk نشدن ایمیل

    سلام، خسته نباشید.

    وقتی ایمیل ارسال می شود فونت و اندازه آن زشت است ولی ایمیل حتی در یاهو نیز به inbox ارسال می شود.
    ولی وقتی کد <br> یا تگ هایی که مشخص میکند اسم و اندازه فونت چی باشه را در متن میل می نویسیم و حتی قسمت isbodyhtml=true هم میزاریم دیگه میل ها به bulk میره تو یاهو شما که تمام مباحث مربوط به میل را توضیح دادید راهی هم برای بر طرف کردن این مشکل دارید ؟

  25. #25
    آیا این امکان وجود دارد که از کامپیوتر کاربر فایلی در ایمیل Attach شود بدون اینکه از کامپوننت (component) , انتخاب فایل<INPUT> استفاده شود؟

  26. #26
    نقل قول نوشته شده توسط JackJumper.Net مشاهده تاپیک
    سلام، خسته نباشید.

    وقتی ایمیل ارسال می شود فونت و اندازه آن زشت است ولی ایمیل حتی در یاهو نیز به inbox ارسال می شود.
    ولی وقتی کد <br> یا تگ هایی که مشخص میکند اسم و اندازه فونت چی باشه را در متن میل می نویسیم و حتی قسمت isbodyhtml=true هم میزاریم دیگه میل ها به bulk میره تو یاهو شما که تمام مباحث مربوط به میل را توضیح دادید راهی هم برای بر طرف کردن این مشکل دارید ؟
    آقای راد راجع به این موضوع توضیح کاملی نوشتند.
    می تونید به این آدرس رجوع کنید
    https://barnamenevis.org/showth...edicate&page=3
    متاسفانه ip dedicate می خواد که پولیه!!

  27. #27
    قبل از هر چیز لازم می دونم بابت این مقاله تون از شما تشکر کنم. واقعا یه رفرنس بی نظیره!
    همچنین خدمت اون دوستانی که کم لطفی کردن باید عرض کنم! که تشکر اینترنتی اونقدر ارزش نداره که یه نفر این همه متن رو ترجمه کنه ! شما لطف داشتید که این مطالب رو، جمع آوری کردید و اینجا گذاشتید تا بقیه ازش استفاده کنند.

    نقل قول نوشته شده توسط babi_ww مشاهده تاپیک

    کلاس SmtpClient ارسال ایمیل به صورت SSL را هم جهت اهداف امنیتی پشتیبانی میکند
    ممنون میشم اگه راجع به این مورد هم یه مثال با کد بگذارید.

  28. #28
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    قلب دوستان
    پست
    191
    کارتون عالی بود
    امیدوارم مدیران محترم رتبه بالایی به این تاپیک بدن و حتی اون رو در بخش ویژه قرار بدن. عده زیادی از کاربران با دیدن این تاپیک کامل سورپرایز (خوشبحال) میشند.

  29. #29
    با تشکر از زحمات شما بابت این مقاله ارزشمند .
    یک نکته ای که باقی ماند اینکه ما اگر بخواهیم یک میل به شکل خبر نامه بفرستیم چگونه عمل کنیم .

  30. #30
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    از لطف تمام دوستان کمال تشکر رو دارم.

    نقل قول نوشته شده توسط JackJumper.Net مشاهده تاپیک
    سلام، خسته نباشید.

    وقتی ایمیل ارسال می شود فونت و اندازه آن زشت است ولی ایمیل حتی در یاهو نیز به inbox ارسال می شود.
    ولی وقتی کد <br> یا تگ هایی که مشخص میکند اسم و اندازه فونت چی باشه را در متن میل می نویسیم و حتی قسمت isbodyhtml=true هم میزاریم دیگه میل ها به bulk میره تو یاهو شما که تمام مباحث مربوط به میل را توضیح دادید راهی هم برای بر طرف کردن این مشکل دارید ؟
    متاسفانه در این مورد برسی نکردم.نمدونم.این مشکل Bulk هم برای خودش معضلی شده .یکی از اساتید پیشنهاد داده که از کاربر ها بخواهیم آدرس ما رو به آدرس بوکشون اضافه کنن که مسائل خودش رو داره.
    نقل قول نوشته شده توسط kamvah مشاهده تاپیک
    آیا این امکان وجود دارد که از کامپیوتر کاربر فایلی در ایمیل Attach شود بدون اینکه از کامپوننت (component) , انتخاب فایل<INPUT> استفاده شود؟
    تا اونجا که سواد ما میرسه نه.مگه آقای راد راه حلی داشته باشن

    نقل قول نوشته شده توسط سید مسعود موحد مشاهده تاپیک
    آقا خیلی عالی بود به قول دوستمون اگر pdf هم بکنید و قرا بدهید روی سایت برای دانلود که عالی میشود
    میتونید ار سایت منبع دانلود کنید

    نقل قول نوشته شده توسط DotNet_King مشاهده تاپیک
    قبل از هر چیز لازم می دونم بابت این مقاله تون از شما تشکر کنم. واقعا یه رفرنس بی نظیره!
    همچنین خدمت اون دوستانی که کم لطفی کردن باید عرض کنم! که تشکر اینترنتی اونقدر ارزش نداره که یه نفر این همه متن رو ترجمه کنه ! شما لطف داشتید که این مطالب رو، جمع آوری کردید و اینجا گذاشتید تا بقیه ازش استفاده کنند.



    ممنون میشم اگه راجع به این مورد هم یه مثال با کد بگذارید.

    متاسفانه استفاده از ssl بر خلاف چیزی که اعلام شده عملی نیست(یا لاقل ما هر تلاشی کردیم نشد.در یکی از مراجع هم ذکر کرده بود که نمیشه.)

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

  31. #31
    نقل قول نوشته شده توسط babi_wd
    تا اونجا که سواد ما میرسه نه.مگه آقای راد راه حلی داشته باشن
    نه بابک جان. امکانش وجود نداره.

  32. #32
    کاربر دائمی
    تاریخ عضویت
    تیر 1386
    محل زندگی
    Web
    پست
    346
    با سلام به همه دوستان
    آقا واقعا عالی بود واقعیتش من چند ساله دارم از سایتا با کد ایمیل میزنم ولی تا حالا تا این حد وارد کلاسش نشده بودم واقعا دستت درد نکنه خیلی خیلی آموزنده بود خیلی استفاده کردم
    موفق و پیروز باشید

  33. #33
    سلام
    من هم به نوبه خودم لازم می دونم از زحمتی که کشیدید تشکر و قدردانی کنم.
    خیلی عالی بود به قول دوستمون اگر pdf هم بکنید و قرا بدهید روی سایت برای دانلود که عالی میشود
    موفق باشید

  34. #34
    کاربر دائمی آواتار mahdi_farhani
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    فولادشهر - اصفهان
    سن
    36
    پست
    1,227
    با اینکه دیر رسیدم ، ولی خوب اینم خودش یه جور تشکره . مطالب آموزش خالدی به صورت PDF
    فایل های ضمیمه فایل های ضمیمه

  35. #35
    با عرض سلام و خسته نباشید...
    واقعا دست شما درد نکنن مقله خیلی عالی بود.
    من مقاله شما را خواندم و از این قسمتش که گفتن می تونم بدون اتصال به انترنت ایمیل بفرستم واقعا تعجب کردم چطور ممکن؟
    اگه امکانش هست در این مورد هم توضیح بدین.
    من این کارو کردم ولی نشد شما گفته بودین که اگر ایمیل درست ارسال بشه باید داخل این مسیر باشه C:\Inetpub\mailroot\Pickup اما نمی دونم چرا به پوشه C:\Inetpub\mailroot\Queue فرستاده میشن؟
    اینم کدی که نوشتم:
    using System;
    using System.Configuration;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Net.Mail;
    publicpartialclass_Default : System.Web.UI.Page
    {
    protectedvoid Page_Load(object sender, EventArgs e)
    {
    MailMessage mail = newMailMessage();
    //ںïêïé ¦ی§ê
    //mail.From = new MailAddress("araz_pashazadeh@yahoo.com");
    mail.From = newMailAddress("araz_pashazadeh@yahoo.com", "™©ںھ پں¬ںھں§ى", System.Text.Encoding.GetEncoding("utf-8"));
    //§ی«¢ê èى ç©ں© ں«¢ ںïêïé ى ™ë ه©«¢ں§ى ¬ی§
    mail.To.Add("hesam_0o0@yahoo.com");
    mail.Subject =
    "This is an email";
    mail.Body =
    "this is a sample body with html in it. <b>This is" +
    "bold</b> <font color=#336699>This is blue</font>";
    //mail.IsBodyHtml = true;
    //SmtpClient smtp = new SmtpClient("127.0.0.1");
    mail.Headers.Add("Company", "My Company");
    mail.Headers.Add(
    "Location", "Iran");
    SmtpClient smtp = newSmtpClient();
    smtp.DeliveryMethod=
    SmtpDeliveryMethod.PickupDirectoryFromIis;
    smtp.Send(mail);
    }
    }
    ممنون میشم اگه راهنماییم کنید

  36. #36
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    سلام
    کد هاتون بین تگ کد نیست.چیزی ازش نمی فهمم
    مشکلی نیست.چون ایمیل شما ارسال نمیشه.به این پوشه انتقال داده میشه تا در اولین زمان ممکن اونارو بفرسته.شما از همین پوشه ایمیل هاتون رو دنبال کنید.
    در ضمن این مورد برای تمرین ذکر شده

  37. #37
    ممنون از لطفتون کدها مو این با ر به صورت کامل تر می زارم

  38. #38
    من هم ایمیلهایم به پوشه queue میرود. علت چیست ؟
    برای اینکه حتماً ایمیل به گیرنده برسد چه کار بکنم؟
    آیا خطا از برنامه نویسی است یا علتهای دیگری دارد ؟
    اگر به حالت عادی (smtp.Send(mail را بزنم خطای failure to send email را میدهد.
    من باید در برنامه ام حتماً خروجی اش را ببینم چون کارفرما باید نتیجه عملی آنرا ببیند. لطفاً راهنمایی کنید چه کار کنم؟
    ممنون.

  39. #39
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1384
    محل زندگی
    همدان
    پست
    336
    نقل قول نوشته شده توسط C#‎_web مشاهده تاپیک
    من هم ایمیلهایم به پوشه queue میرود. علت چیست ؟
    توضیح دادم که.این روش یه جور تست خروجیه.

    نقل قول نوشته شده توسط C#‎_web مشاهده تاپیک
    برای اینکه حتماً ایمیل به گیرنده برسد چه کار بکنم؟
    باید یک میل سرور واقعی داشته باشید(مثل میل سرور یاهو).یا تنظیمات smtp سرور iis خورتون رو به طور کامل انجام بدین
    نقل قول نوشته شده توسط C#‎_web مشاهده تاپیک
    آیا خطا از برنامه نویسی است یا علتهای دیگری دارد ؟
    هم آره هم نه
    نقل قول نوشته شده توسط C#‎_web مشاهده تاپیک
    اگر به حالت عادی (smtp.Send(mail را بزنم خطای failure to send email را میدهد.
    خوب،یعنی میل سروری نداره که ایمیل رو بفرسته.یا هر نوع ایرادی که تو ارسال ایمیل باشه

    نقل قول نوشته شده توسط C#‎_web مشاهده تاپیک
    من باید در برنامه ام حتماً خروجی اش را ببینم چون کارفرما باید نتیجه عملی آنرا ببیند. لطفاً راهنمایی کنید چه کار کنم؟
    ایمیل واقعی بفرست
    ممنون.

  40. #40
    من مشخصات smtp را روی سیستم خودم ست کرده ام . اما این خطا را داده . نمیدانم چه اطلاعات دیگری باید وارد کنم؟
    اگر در شرکتی که کار میکنم بخواهم از سرور آنها استفاده کنم ، mail server را در کجا باید صدا بزنم یا در کدهایم در کجا و آدرس چه چیزی را باید بنویسم؟

صفحه 1 از 4 123 ... آخرآخر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •