شيما دهباشي

شركت رادكام
34 - پیام , 597 - نظر

SMTP Authentication با استفاده از System.Web.Mail

زمانی که می خواهید از طریق برنامه email ارسال کنید تا زمانی که گیرنده Email با فرستنده در یک دامنه و یا در یک سرور قرار داشته باشند مشکلی برای ارسال نخواهید داشت ، در غیر این صورت - یعنی زمانی که به عنوان مثال از طریق برنامه Email  به کاربری در Yahoo بفرستید باید حتما فرستنده email ، با استفاده از شناسه و گذرواژه خود ، Authenticate شود.

در حالت پیش فرض زمانی که از System.Web.Mail برای ارسال Email استفاده می کنیم ، در حقیقت آبجکت Message را به گونه ای تنظیم می کنیم که تنها شامل آدرس گیرنده و فرستنده ، متن ، SMTP Server و عنوان و دیگر عوامل مرتبط به email  باشد. دراین حالت System.Web.Mail هیچ امکانی برای Authentication پیام ارسالی از طریق SMTP ارائه نمی دهد. برای Configure کردن این آبجکت می توان به صورت زیر عمل کرد :

using System;
using System.Web.Mail;
namespace SMTPAuthentication
{
 public class SMTPAuthenticationExample
 {
  public static void SendMail()
  {
   string smtpServer = "smtp.domain.com";
   string userName = "johnDoe";
   string password = "pass";

در این بخش شناسه و گذرواژه مربوط به کاربری که باید Authentication از طریق آن صورت گیرد را معرفی می کنیم.

   int cdoBasic = 1;

cdoBasic معرف این است که آیا Authentication صورت بگیرد یا نه ( مقادیر قایل قبول 0 برای عدم Authentication،  برای  1 Authentication و 2 می باشند )

   int cdoSendUsingPort = 2;
   MailMessage msg = new MailMessage();
   if (userName.Length > 0)
   {
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", smtpServer);
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25) ;
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", cdoSendUsingPort) ;
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", cdoBasic);
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", userName);
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password);
   }
   msg.To = "someone@domain.com";
   msg.From = "me@domain.com";
   msg.Subject = "Subject";
   msg.Body = "Message";
   SmtpMail.SmtpServer = smtpServer;
   SmtpMail.Send(msg);
  }
}

ارسال شده در تاریخ ۲۴ دی ۱۳۸۴ - 4:13 عصر

نظرات

# پاسخ به: SMTP Authentication با استفاده از System.Web.Mail  

ممنون
۱۵ مهر ۱۳۸۵ - 9:27 صبح | japco.ir

# پاسخ به: SMTP Authentication با استفاده از System.Web.Mail  

سلام
روز به خیر
کد vb.netبالا را میی خواهم اگر لطف کنید ممنون می شوم
۲۰ فروردین ۱۳۸۶ - 2:08 عصر | آرش

# پاسخ به: SMTP Authentication با استفاده از System.Web.Mail  

سلام

چرا ایمیل به این روش به ایمیل یاهو نمی رسد؟
۲ خرداد ۱۳۸۸ - 3:27 عصر | مجید

# اين كتابخانه منسوخ شده است  

همونطوري كه مي دونين، كتابخانه System.Web.Mail منسوخ شده است و در نگارش هاي 2 به بالاي دات نت از آن پشتيباني نمي شود. و هنگام استفاده هم تذكر مي دهد.
System.Web.Mail.MailMessage is obsolete: 'The recommended alternative is System.Net.Mail.MailMessage. http://go.microsoft.com/fwlink/?linkid=14202
۶ بهمن ۱۳۸۹ - 2:28 عصر | رضوي

# پاسخ به: SMTP Authentication با استفاده از System.Web.Mail  

ورژن 2 به بالا و در زبان asp.net
Dim msg As String = htmltext
Try
Dim strAddress As String = "xxx@xxxx.com"
Dim sm As New SmtpClient("webmail.regaco.com", 587)
With sm
' .EnableSsl = True
.Credentials = New NetworkCredential(email_from, sendpass)
End With

Dim _from As MailAddress = New MailAddress(email_from)
Dim _to As MailAddress = New MailAddress(email_to)
Dim mMsg As New MailMessage(_from, _to)
mMsg.Subject = email_subject

sm.Send(mMsg)

'msg = "Seccess!"

Catch ex As Exception
'msg = ex.Message
End Try
۹ دی ۱۳۹۲ - 3:09 عصر | میلاد جواهری

# پاسخ به: SMTP Authentication با استفاده از System.Web.Mail  

این کد را هم قبل از
mMsg.Body = msg
تایپ کنید
۹ دی ۱۳۹۲ - 3:13 عصر | میلاد جواهری

ارسال نظرات

عنوان:  
نام:  
آدرس الکترونیکی:
زبان:
توضیح:  
لطفا متن مقابل را در زیر وارد کنید
(کوچک یا بزرگ بودن حروف مهم نیست)