saeed_rezaei
دوشنبه 14 آبان 1386, 00:07 صبح
سلام دوستان.
بعضی جاها می دیدم که دوستان لینکهایی در مورد ارسال ایمیل از طریق وی بی 2005 داشتن. در وی بی 2003 مشکلی زیادی وجود نداشت. به راحتی می شد ایمیل ارسال کرد اما در 2005 جای کلاسها عوض شده در قسمت زیر می خوام خیلی ساده و مختصر براتون توضیح بدم که چطور می تونید یک ایمیل رو از طریق وی بی 2005 ارسال کنید.
مهمترین نکته ای که باید در مورد ارسال ایمیل بدونید، سرویس های ایمیل هست. همانطور که مطمئنن خودتون هم می دونید، دوتا سرویس استفاده از ایمیل با نامه های SMTP و POP3 وجود داره.
SMTP سرویس ارسال ایمیل هست و به آدرس سروری اطلاق می شه که وظیفه ارسال ایمیل رو بر عهده داره. وقتی شما ایمیلی رو ارسال می کنید، از طریق این سرور ارسال می شه.
3POP سروری هست که نامه ها رو دریافت می کنه. یعنی وقتی کاربر وارد ایمیلش می شه، لیست نامه هاش رو از این سرور می گیره.
با این تعاریف باید بدونید که هنگام ارسال نامه حتما بایستی آدرس SMTP مروبطه رو داشته باشید.
هنگامی که شما قصد ارسال نامه ای رو دارید، بایستی به ایمیلتون login کنید تا مجوز شما مورد صحت قرار بگیره.
در روش ارسال نامه با وی بی، شما دو حالت رو پیش رو دارید. با مجوز یا بدون مجوز اقدام به ارسال نامه کنید.
در روش با مجوز، باید اطلاعات مروبط به نام کاربری و کلمه رمز رو به سرور SMTP بدید تا صحت مجوز شما بررسی بشه.
و در روش بدون مجوز، شما بدون ارائه نام کاربری و کلمه رمز نامه ای رو ارسال میکنید. اما این نامه وارد صندوق BULK می شه و هنگام خوندن نامه توسط گیرنده، به کاربر اطلاع می ده که صحت این نامه مورد تایید نیست. همچنین خیلی وقتها شما می تونید تنها به کاربرانی از این نامه ها بفرستید که توی گروه شما عضو هستند. به عبارتی اگه شما @YAHOO.COM هستید، تنها به کاربران یاهو می تونید از این نامه ها بفرستید. لازم به ذکر هست که خیلی از سرورهای smtp اجازه نمی دن که بدون مجوز اقدام به ارسال نامه کنید.
کدهای مربوط به ارسال نامه بدون مجوز ، به وفور توی سایتها ریخته و من هم در اینجا قصد توضیحشون رو ندارم. هر چند که کدشون همین کدی هست که ارائه می دیم با این تفاوت که LOGIN نداره.
با توضیحات پراکنده بالا، می ریم سروقت کد:
کلاسهای مربوط به ارسال ایمیل در قسمت SYSTEM.NET.MAIL قرار گرفته. پس قبل از هر کاری، کد زیر رو به ابتدای فرم اضافه می کنیم:
Imports System.net.Mail
سه کلاسی که خیلی از اونها استفاده می کنیم عبارتند از :
SmtpClient: کلاسی جهت اتصال به سرور SMTP و ارسال نامه.
MailMessage: کلاسی برای تعریف اطلاعات و ساخت نامه.
Attachment: کلاسی برای اضافه کردن فایل به ضمیمه نامه.
اولین گامی که داریم مشخص کردن آدرس های گیرنده و فرستنده هست. در 2003 این آدرسها به صورت متن بود اما در 2005 باید بااستفاده از کلاس مربوطه ایجاد شوند.
برای آدرس فرستنده داریم (من آدرس ایمیل خودم رو گذاشتم):
Dim STR_FROM As New MailAddress("srezaii2000@yahoo.com")
Dim RECIVER As New MailAddress("Reciver Email Address")
حالا که آدرسهای گیرنده و فرسنده مشخص شد باید نامه رو ایجاد کنیم و آدرسهای گیرنده وفرستنده رو بهش می دیم:
Dim MY_EMAIL As New MailMessage(FROM, RECIVER)
در گام های بعدی، عنوان نامه و متن نامه رو مشخص می کنیم:
MY_EMAIL.Subject = "THIS IS A TEST 4"
MY_EMAIL.Body = " HI, This Email Sent With VB.NET 2005"
چنانچه نامه ای دارای ضمیمه باشد بایستی با استفاده از کلاس attachment اون رو اضافه نمود. دراین مثال من میخوایم یه فایل متن رو اضافه کنم. ابتدا این فایل رو ایجاد می کنیم:
Dim MY_ATTACH As New Attachment("c:\slr_soft.txt")
و حالا به نامه اضافه می کنیم:
MY_EMAIL.Attachments.Add(MY_ATTACH)
تا به این قسمت، یک نامه ایجاد کردیم که اطلاعات فرستنده و گیرندش مشخص شده. همچنین، متن، عنوان و یه ضمیمه هم برای اون قرار دادیم. در ادامه باید تنظیمات مربوط به سرور SMTP و اطلاعات مربوط به Username و Password رو اضافه کنیم تا مرحله Login در هنگام ارسال نامه انجام بشه.
ابتدا یک SmtpClient ایجاد می کنیم تا تنظیمات رو بهش بدیم:
Dim SmtpMail As New SmtpClient
و با کد زیر، آدرس سرور SMTP رو بهش بدیم:
SmtpMail.Host = "Your Smtp Server Address Or IP"
همچنین، نام کاربری و کلمه رمز رو ایجاد می کنیم:
Dim theCredential As New System.Net.NetworkCredential("Email Username", "Email Password")
SmtpMail.Credentials = theCredential
و در پایان، نامه رو ارسال می کنیم:
SmtpMail.Send(MY_EMAIL)
کل کد، چیزی شبیه به این می شه:
Dim FROM As New MailAddress("srezaii2000@yahoo.com")
Dim RECIVER As New MailAddress("Reciver Email Address")
Dim MY_EMAIL As New MailMessage(FROM, RECIVER)
MY_EMAIL.Subject = "THIS IS A TEST 4"
MY_EMAIL.Body = " HI, This Email Sent With VB.NET 2005"
Dim MY_ATTACH As New Attachment("c:\slr_soft.txt")
MY_EMAIL.Attachments.Add(MY_ATTACH)
Dim SmtpMail As New SmtpClient
SmtpMail.Host = "Your Smtp Server Address Or IP"
Dim theCredential As New System.Net.NetworkCredential("Email Username", "Email Password")
SmtpMail.Credentials = theCredential
SmtpMail.Send(MY_EMAIL
همین مطالب رو هم به صورت فایل pdf می زام همینجا:
بعضی جاها می دیدم که دوستان لینکهایی در مورد ارسال ایمیل از طریق وی بی 2005 داشتن. در وی بی 2003 مشکلی زیادی وجود نداشت. به راحتی می شد ایمیل ارسال کرد اما در 2005 جای کلاسها عوض شده در قسمت زیر می خوام خیلی ساده و مختصر براتون توضیح بدم که چطور می تونید یک ایمیل رو از طریق وی بی 2005 ارسال کنید.
مهمترین نکته ای که باید در مورد ارسال ایمیل بدونید، سرویس های ایمیل هست. همانطور که مطمئنن خودتون هم می دونید، دوتا سرویس استفاده از ایمیل با نامه های SMTP و POP3 وجود داره.
SMTP سرویس ارسال ایمیل هست و به آدرس سروری اطلاق می شه که وظیفه ارسال ایمیل رو بر عهده داره. وقتی شما ایمیلی رو ارسال می کنید، از طریق این سرور ارسال می شه.
3POP سروری هست که نامه ها رو دریافت می کنه. یعنی وقتی کاربر وارد ایمیلش می شه، لیست نامه هاش رو از این سرور می گیره.
با این تعاریف باید بدونید که هنگام ارسال نامه حتما بایستی آدرس SMTP مروبطه رو داشته باشید.
هنگامی که شما قصد ارسال نامه ای رو دارید، بایستی به ایمیلتون login کنید تا مجوز شما مورد صحت قرار بگیره.
در روش ارسال نامه با وی بی، شما دو حالت رو پیش رو دارید. با مجوز یا بدون مجوز اقدام به ارسال نامه کنید.
در روش با مجوز، باید اطلاعات مروبط به نام کاربری و کلمه رمز رو به سرور SMTP بدید تا صحت مجوز شما بررسی بشه.
و در روش بدون مجوز، شما بدون ارائه نام کاربری و کلمه رمز نامه ای رو ارسال میکنید. اما این نامه وارد صندوق BULK می شه و هنگام خوندن نامه توسط گیرنده، به کاربر اطلاع می ده که صحت این نامه مورد تایید نیست. همچنین خیلی وقتها شما می تونید تنها به کاربرانی از این نامه ها بفرستید که توی گروه شما عضو هستند. به عبارتی اگه شما @YAHOO.COM هستید، تنها به کاربران یاهو می تونید از این نامه ها بفرستید. لازم به ذکر هست که خیلی از سرورهای smtp اجازه نمی دن که بدون مجوز اقدام به ارسال نامه کنید.
کدهای مربوط به ارسال نامه بدون مجوز ، به وفور توی سایتها ریخته و من هم در اینجا قصد توضیحشون رو ندارم. هر چند که کدشون همین کدی هست که ارائه می دیم با این تفاوت که LOGIN نداره.
با توضیحات پراکنده بالا، می ریم سروقت کد:
کلاسهای مربوط به ارسال ایمیل در قسمت SYSTEM.NET.MAIL قرار گرفته. پس قبل از هر کاری، کد زیر رو به ابتدای فرم اضافه می کنیم:
Imports System.net.Mail
سه کلاسی که خیلی از اونها استفاده می کنیم عبارتند از :
SmtpClient: کلاسی جهت اتصال به سرور SMTP و ارسال نامه.
MailMessage: کلاسی برای تعریف اطلاعات و ساخت نامه.
Attachment: کلاسی برای اضافه کردن فایل به ضمیمه نامه.
اولین گامی که داریم مشخص کردن آدرس های گیرنده و فرستنده هست. در 2003 این آدرسها به صورت متن بود اما در 2005 باید بااستفاده از کلاس مربوطه ایجاد شوند.
برای آدرس فرستنده داریم (من آدرس ایمیل خودم رو گذاشتم):
Dim STR_FROM As New MailAddress("srezaii2000@yahoo.com")
Dim RECIVER As New MailAddress("Reciver Email Address")
حالا که آدرسهای گیرنده و فرسنده مشخص شد باید نامه رو ایجاد کنیم و آدرسهای گیرنده وفرستنده رو بهش می دیم:
Dim MY_EMAIL As New MailMessage(FROM, RECIVER)
در گام های بعدی، عنوان نامه و متن نامه رو مشخص می کنیم:
MY_EMAIL.Subject = "THIS IS A TEST 4"
MY_EMAIL.Body = " HI, This Email Sent With VB.NET 2005"
چنانچه نامه ای دارای ضمیمه باشد بایستی با استفاده از کلاس attachment اون رو اضافه نمود. دراین مثال من میخوایم یه فایل متن رو اضافه کنم. ابتدا این فایل رو ایجاد می کنیم:
Dim MY_ATTACH As New Attachment("c:\slr_soft.txt")
و حالا به نامه اضافه می کنیم:
MY_EMAIL.Attachments.Add(MY_ATTACH)
تا به این قسمت، یک نامه ایجاد کردیم که اطلاعات فرستنده و گیرندش مشخص شده. همچنین، متن، عنوان و یه ضمیمه هم برای اون قرار دادیم. در ادامه باید تنظیمات مربوط به سرور SMTP و اطلاعات مربوط به Username و Password رو اضافه کنیم تا مرحله Login در هنگام ارسال نامه انجام بشه.
ابتدا یک SmtpClient ایجاد می کنیم تا تنظیمات رو بهش بدیم:
Dim SmtpMail As New SmtpClient
و با کد زیر، آدرس سرور SMTP رو بهش بدیم:
SmtpMail.Host = "Your Smtp Server Address Or IP"
همچنین، نام کاربری و کلمه رمز رو ایجاد می کنیم:
Dim theCredential As New System.Net.NetworkCredential("Email Username", "Email Password")
SmtpMail.Credentials = theCredential
و در پایان، نامه رو ارسال می کنیم:
SmtpMail.Send(MY_EMAIL)
کل کد، چیزی شبیه به این می شه:
Dim FROM As New MailAddress("srezaii2000@yahoo.com")
Dim RECIVER As New MailAddress("Reciver Email Address")
Dim MY_EMAIL As New MailMessage(FROM, RECIVER)
MY_EMAIL.Subject = "THIS IS A TEST 4"
MY_EMAIL.Body = " HI, This Email Sent With VB.NET 2005"
Dim MY_ATTACH As New Attachment("c:\slr_soft.txt")
MY_EMAIL.Attachments.Add(MY_ATTACH)
Dim SmtpMail As New SmtpClient
SmtpMail.Host = "Your Smtp Server Address Or IP"
Dim theCredential As New System.Net.NetworkCredential("Email Username", "Email Password")
SmtpMail.Credentials = theCredential
SmtpMail.Send(MY_EMAIL
همین مطالب رو هم به صورت فایل pdf می زام همینجا: