با نوشتن کد زیر برای ارسال ایمیلMailMessage msg = new MailMessage();
msg.From = new MailAddress("ali@MyCompany.com");
msg.To.Add("ali@MyCompany.com");
msg.Subject = "for test";
msg.Body = "this is for test";
SmtpClient smtp = new SmtpClient("mail.MyCompany.com", 25);
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("ali@MyCompany.com", "MyPassword");
try
{
smtp.Send(msg);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
با خطای زیر روبر می شوم لطفا راهنمایی کنید"An established connection was aborted by the software in your host machine"
مشکل از آنتی ویروس بود که با غیرفعال کردن آن مساله حل شد
با سلام! من هم بابت مقاله بسیار مفیدتون تشکر می کنم .میخوام بدونم که اگر بخواهیم که میل را به تعداد زیادی از افراد بفرستیم ،به صورتی که آدرس میل افراد رو از تو دیتابیس بخونه (مثل ارسال خبرنامه)
حالا چی جوری باید آدرس رو بخونم و به mail.to.add("yourmail@yourDomain.com") اضافه کنیم؟ از DataReader استفاده کنم؟
اگه راهنماییم کنین ممنون میشم
بله.این کارم میتونی بکنی.
بخونی و به کالکشن اضافه کنی
این هم کد مربوط به فرستادن ایمیل به تعداد زیادی یوزر:
dim i As Integer = 0
Dim email AsString
Dim listMail AsNew ArrayList()
While (dr.Read)
email = dr.GetValue(i).ToString
listMail.Add(email)
i = i + 1 - 1
EndWhile
ForEach email In listMail
mail.To.Add(email)
Dim smtp AsNew System.Net.Mail.SmtpClient()
smtp.Host = "mail.myhost.com"
smtp.Send(mail)
حالا من یه مشکلی دارم و اونم اینه که ایمیل افرادی که در دیتابیس من قرار دارند از mailserver های مختلفی هست و موقع فرستادن میل با error های مختلفی روبرو میشم. مثل Mailbox Unavailable یا Timeout Operation . به نظر دوستان مشکل از چی میتونه باشه؟
مشکل spam در ارسال ایمیل چی جوری حل میشه؟ ):
با سلام من کد زیر را در صفحه ای داخل سایتی نوشتم و آپلود کردم ولی با یک خطا مواجه
شدم لطفا کمکم کنید.
اینم کد برنامه ام
************************************************** **********
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Mail;
public partial class Mail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MailMessage objmail = new MailMessage();
objmail.From = System.Configuration.ConfigurationSettings.AppSett ings
["Email"];
objmail.To = TextBox1.Text;
objmail.Subject = "salam";
objmail.BodyFormat = MailFormat.Html;
objmail.BodyEncoding = System.Text.Encoding.UTF8;
objmail.Body = "thank for register";
objmail.Fields["http://schemas.microsoft.com/cdo/con...tion/sendusing"]
= 2;
objmail.Fields
["http://schemas.microsoft.com/cdo/con...smtpserverport"] = 25;
objmail.Fields
["http://schemas.microsoft.com/cdo/con...tpauthenticate"] = 1;
objmail.Fields
["http://schemas.microsoft.com/cdo/con...n/sendusername"] =
System.Configuration.ConfigurationSettings.AppSett ings["SMTPusername"];
objmail.Fields
["http://schemas.microsoft.com/cdo/con...n/sendpassword"] =
System.Configuration.ConfigurationSettings.AppSett ings["SMTPpassword"];
SmtpMail.SmtpServer =
System.Configuration.ConfigurationSettings.AppSett ings["SMTP"];
SmtpMail.Send(objmail);
TextBox1.Text = "";
}
}
************************************************** ***
اینم قسمت WebConfig
******************
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<appSettings>
<add key="SMTP" value="Localhost"/>
<add key="SMTPusername" value=""/>
<add key="SMTPpassword" value=""/>
<add key="Email" value="Morteza_2753@yahoo.com"/>
<add key="Path" value="http://Data-Galaxy.com"/>
</appSettings>
<connectionStrings>
</connectionStrings>
<system.web>
<customErrors mode="Off"/>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<authorization>
<allow roles="Kezack" />
</authorization>
<compilation debug="true"/>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Forms" />
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly"
defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
************************
اینم خطا ی برنامه ام
Server Error in '/' Application.
--------------------------------------------------------------------------------
The message could not be sent to the SMTP server. The transport error code was
0x80040217. The server response was not available
Description: An unhandled exception occurred during the execution of the current
web request. Please review the stack trace for more information about the error and
where it originated in the code.
Exception Details: System.Runtime.InteropServices.COMException: The message
could not be sent to the SMTP server. The transport error code was 0x80040217.
The server response was not available
Source Error:
Line 50: objmail.Fields
["http://schemas.microsoft.com/cdo/con...n/sendpassword"] =
System.Configuration.ConfigurationSettings.AppSett ings["SMTPpassword"];
Line 51: SmtpMail.SmtpServer =
System.Configuration.ConfigurationSettings.AppSett ings["SMTP"];
Line 52: SmtpMail.Send(objmail);
Line 53: TextBox1.Text = "";
Line 54:
لطفا کمکم کنید
با سلام خدمت دوستان گرامی و تشکر فراوان بابت این مطلب بسیار مفید
من از قطعه کد زیر برای ارسال ایمیل استفاده می کنم:
Dim obj As New SmtpClientاما در هنگام ارسال با خطای زیر مواجه میشم:
Dim Mailmsg As New MailMessage
Mailmsg.To.Clear()
Mailmsg.To.Add(New MailAddress(txtReceiverMail.Text))
Mailmsg.From = New MailAddress(txtSenderMail.Text, txtSenderName.Text, System.Text.Encoding.GetEncoding("windows-1256"))
Mailmsg.Subject = txtSubject.Text
Mailmsg.BodyEncoding = System.Text.Encoding.UTF8
obj.Host = "mail.mysite.ir"
Dim basicAuthenticationInfo As New System.Net.NetworkCredential("info@mysite.ir", "PWD1")
obj.UseDefaultCredentials = False
obj.Credentials = basicAuthenticationInfo
Mailmsg.Body = txtBody.Text
Mailmsg.IsBodyHtml = True
Try
obj.Send(Mailmsg)
Catch ex As Exception
Response.Write(ex.Message)
End Try
End Sub
User not local; please try a different path. The server response was: Sender address is not valid for your login. Check your email program settingsمشکل از کجاست؟
نه ابدا. شما مي توانيد قبل از اينكه به كاربر اجازه ي ارسال ايميل بدهيد، او را ملزم به ثبت نام كرده و يك كد فعالسازي براي او به آدرس ايميلي كه در فرم ثبت نام پر كرده است بفرستيد تا از صحت آدرس ايميل مطمئن شويد. سپس كاربر شما كه اينك
IsAuthenticated هست مي توانيد از امكانات ارسال ايميل استفاده كند. بيش از اين كاري نمي توان كرد. آيا شما طالب طراحي سيستمي قوي تر از yahoo هستيد؟
سلام
با تشكر از تمامي دوستاني كه زحمت كشيدن و اين تاپيك را ايجاد كردن مخصوصا از babak خان عزيز
مي خواستم بدونم آيا نحوه استفاده از pop3 در دات نت را هم به اين واضحي و شفافي داريد ؟ اگر زحمتي نيست امكانش هست كه اينجا بگذاريد ؟
با تشكر و خسته نباشيد
سلام
بابت زحمات جنابعالی تشکر ویژه می کنم انشاالله همیشه موفق باشید.
من همه کارهائی که در مقاله گفته اید را در سورس ذیل انجام داده ام ولی خطای غیر امن بودن ارتباط را میدهد بنظر شما مشکل کجاست :
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. q9sm9151655gve.5
اینهم کد :
MailAddress From = newMailAddress("A@gmail.Com", "Mr A");
MailAddress To = newMailAddress("B@C.Com", "Mr B");
MailMessage MM = newMailMessage(From, To);
MM.Subject = "Subject ...";
MM.Body = "Body ...";
MM.Attachments.Add(newAttachment(@"C:\FileName.txt"));
SmtpClient Smtp = newSmtpClient("Smtp.gmail.Com", 25);
Smtp.Credentials = newNetworkCredential("A@gmail.Com", "******");
Smtp.Send(MM);
خودم جوابش رو پیدا کردم این دوخط را کم دارد :
Smtp.UseDefaultCredentials = false;
Smtp.EnableSsl = true;
با سلام:
من از كد شما استفاده كردم ولي خطاي زير را مي دهد مي شه راهنماييم كنيد :
Mailbox name not allowed. The server response was: sorry, you have not authenticated for relay and <mail@yahoo.com> is not a local address.(#5.7.1)
سلام
از شما بخاطر مقاله خوبتون تشکر می کنم
اگر ممکنه یک صفحه که بوسیله اون بشه میلی فرستاد همرا با CC و ... به عنوان ضمیمه قرار بدهید
با سلام خدمت همگي.
باتشكر از بابك جان عزيز موردي كه واسه من پيش اومده اينه كه با استفاده از آموزش اقا بابك گل، ايميل هايي كه بايد ارسال بشن، توي صفحه سايت من بدون خطا ارسال ميشن اما فقط ايميل هاي از نوع gmail به مقصد ميرسه و ايميلهاي yahoo چيزي بدستشون نميرسه. اين مورد از چي ممكنه باشه؟ اگه راهنمايي كنيد خيلي ممنون ميشم.
سلام. عيد همگي مبارك.
بابك جان از لطفت ممنونم.
ايميلها به گوگل سريع ارسال ميشه (حداكثر 5 دقيقه) اما به ياهو چند ساعت تاخير داره.
حالا اون جاي خودش مسئله اي كه الآن هست اينه كه وقتي آدرس ايميل به صورت مستقيم نوشته ميشه مثلا:
mail.To.Add(name@site.com)
يا
mail.To.Add(TextBox2.Text)
ايميلها ارسال ميشن. اما وقتي يك متغير مثلا متغيري كه اطلاعاتش از بانك خومده شده باشه، بجاي آدرس ايميل نوشته ميشه، ايميل به دست گيرنده نميرسه. حتي اگر به عنوان مثال ايميلي كه از توي تكست باكس مي گيريم رو درون يه متغير بريزيم، همين مسئله پيش مياد.
مثلا:
dim email as string=textbox1.text
mail.to.add("'" & email & "'")
اينجوري ايميل ارسال ميشه اما به دست گيرنده نميرسه. فرقي نميكنه gmail باشه يا yahoo.
بازهم ممنونم.
dim email as string=textbox1.text
mail.to.add("'" & email & "'")
وقتی متغیرت از جنس string هست و آرگومان تابع add هم همینطور، اینا رو برای چی گذاشتی؟
چند روش رو معرفی کردن اما من به شخصه از هیچ کدوم استفاده نکردم
همیشه سرویس گرفتن از یه هاست خوب رو به همه این مسائل ترجیح دادم
هیچ وقت هم برای ارسال ایمیل به مشترکان سایت مشکل نداشتم
1)اضافه کردن ایمیل فرستنده به آدرس بوک توسط گیرنده--عملا کاربردی نیست مگر در موارد خاص
2)استفاده از آی پی استاتیک برای ارسال ایمیل
این روش ها چیزایی هست که من شنیدم و خوندم عملا استفاده نکردم
اگر کسی هست که بیشتر کار کرده لطفا بگه تا ما هم یاد بگیریم
سلام به همگی
دست همتون درد نکنه کارتون درسته
آقا بابک دستت درد نکنه انشاال... موفق بشی
دوست عزیز اگه اجازه بدین با اجازه آقا بابک گل منم یه تجربه کوچولو دارم میگم امیدوارم کاربردی باشه
من حالتی رو امتحان کردم که اسپم نشد اینکه در واقع آدرس ایمیل فرستنده همون آدرس کاربر اصلی سایت بود که از میل سرور استفاده می کرد مثلا info@schoolfarhang.com اما زمانی که این ایمیل تغییر دادم و در واقع نوعی ایمیل اشتباهی می شد و ایمیل ارسالی اسپم می شد
با سلام
اول از زحمات دوست عزیزمون که این مقاله کامل رو آماده کردن تشکر می کنم و براشون آرزوی موفقیت دارم
من خودم این مشکل رو داشتم و خیلی توی اینترنت دنبال مطالب خوب گشتم و خوشبختانه توی سایت های eng چیزای خوبی پیدا کردم و حتی فیلم های آموزشی اون رو هم دانلود کردم و کارم تقریبا داشت راه می افتاد و وقتی این مقاله رو خودنم خیلی خوشحال شدم
اما این روش و استفاده از این کتابخانه System.Net.Mail یه سری مشکلات برای من داشت که در آخر ازش استفاده نکردم
اول اینکه وقتی با استفاده از این روش میل رو ارسال کردم بیشتر از24 ساعت طول کشید که به دستم برسه و در ثانی اگه بدون پسورد میل رو ارسال می کردم ، اون رو به پوشه spam ها می فرستاد و چون زمان برای من خیلی مهم بود ، در آخر از کتابخانه قدیمی System.Web.Mail استفاده کردم که به محض ارسال میل رو می فرسته .
گفتم کدش رو اینجا بزارم تا اگه کسی نتونست از روش بالا استفاده کنه ، کارش با این راه بیفته
موفق و موید باشید
public static bool SendMail(string ToAddress,string Subject,string Body)
{
string _MailHost = Convert.ToString(ConfigurationManager.AppSettings["MailHost"]);
string _MailPort = Convert.ToString(ConfigurationManager.AppSettings["MailPort"]);
string _MailFromAddress = Convert.ToString(ConfigurationManager.AppSettings["MailFromAddress"]);
string _MailPassword = Convert.ToString(ConfigurationManager.AppSettings["MailPassword"]);
MailMessage myMail = new MailMessage();
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver",_MailHost);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport",_MailPort);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing","2");
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",_MailFromAddress);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",_MailPassword);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl","true");
myMail.From = _MailFromAddress;
myMail.To = ToAddress;
myMail.Subject = Subject;
myMail.BodyFormat = MailFormat.Html;
myMail.Body = Body;
myMail.Priority = MailPriority.High;
myMail.BodyEncoding = System.Text.Encoding.UTF8;
SmtpMail.SmtpServer = _MailHost + ":" +_MailPort;
SmtpMail.Send(myMail);
return true;
}
باید مشکلو پیدا کنی ، چون من اصلاً همچین مشکلی ندارم ، و همیشه میلهام به inbox میرهمیل رو ارسال کردم بیشتر از24 ساعت طول کشید
سلام...فرض کنید من تو درایو c یه فایل دارم که مسیرش به صورت زیره
c:\man_Log.LDF
من میخوام به ایمیل یه فایل attach کنم ... خوب مطمئنا باید مسیر فایل رو از کنترلی مثل fileupload
بگیریم دیگه...ولی وقتی ایمیل رو ارسال میکنم ارور زیر رو میده
Could not find file 'c:\windows\system32\inetsrv\man_Log.LDF'
فکر کنم چون این کنترل سمت سرور اجرا میشه پس تو سرور هم به دنبال فایلی میگرده که من میخوام آپلودش کنم...کدی که استفاده کردم به شکل زیره
if (FileUpload2.HasFile)
{
mm.Attachments.Add(new Attachment(FileUpload2.FileName));
}
چطوری میشه عکس رو در قالب متن(body) میل ارسال کرد؟
با استفاده از Fck editor به عنئان editor body
ممنون
با تشکر از مطالب مفیدتون
سلام دوست عزیز،
پیشنهاد می کنم ویدئوی جناب Chris Pels را در این خصوص مشاهده نمایید:
[How Do I:] Use ASP.NET to Send Email from a Web Site
،/
I've just started tweeting!
@Alireza_Maddah
سلام
ضمن تشکر از دوست عزیزمون به خاطر مطلب مفیدشون، من در انجام یه پروژه با مشکل برخوردم که به شکل زیر هست:
من با ASP.Net 2 براي ارسال ايميل برنامه اي نوشتم که با System.Web.Mail کار ميکنه.
برنامه من تحت کلاينت که اجرا ميشه درست کار ميکنه و با استفاده از يک ايميل سيستم Gmail و پسورد آن، يک ايميل به Domain مورد نظر من ميفرسته.
ولي وقتي آپلودش ميکنم روي سرور ديگه کار نميکنه و خطاي The transport failed to connect to the server رو ميده.
وقتي از System.Net.Mail هم استفاده ميکنم هم، روي کلاينت خطاي The operation has timed out و روي سرور هم خطاي The transport failed to connect to the server رو ميده.
ضمنا شايد اين نکته هم مفيد باشه که بگم هاست سرور من از SSL پشتيباني نميکنه، با توجه به اينکه من از smtp سيستم Gmail استفاده ميکنم نه هاست خودم، آيا غير فعال بودن SSL روي هاست من ميتونه اثري داشته باشه؟
اگه کسي بتونه کمک کنه ممنون ميشم.
با عرض سلام
آقا با وجود اینکه هنوز مقاله شما رو نخوندم لازم دیدم که به این با تمام وجود
این کار شما رو ارج بنهم واز شما تشکر کنم
ان شاالله به حق فاطمه (س) همیشه موفق باشی
عالی و کاملا پیشرفته شامل بسیاری از مطالب حرفه ای مورد نیاز
همگی موفق باشید
با سلام و خسته نباشد
ضمن ارز تشکر از مطالب جالب و خواندی . یک سوال داشتم
1- چگونه میتوان برای ارسال ایمیل یک تاخیر ایجاد کرد . مثلا به از ارسال 10 ایمیل اول , به مدت 5 ثانیه تاخیر یا وقفه داشته باشد و بعد از گذشت این 5 ثانه به ارسال 10 ایمیل بعدی بپردازد ؟
2- چگونه میتوان از Authentication خود هاست استفاده کرد.
من با برنامه FastEmail کار میکنم ولی به دلیل مشکلاتی که دارد خواستم خودم بنویسم.
اگر اساتید من رو راهنمایی کنند همیشه دعاگویشان هستم.
(به دلیل مشغله زیاد ممکنه دیر به دیر بتونم سر بزنم لذا در صورت امکان جواب را ایمیل نمایید "re_vu[@]yahoo[.]com")
با تشکر . میلاد
جوابش رو گیر آوردم دوستان. ممنون
پیشنهاد میکنم با این کار کنید :
http://rapidshare.com/files/262167052/TraySoft.Addmail_for_activeX_v2.1.1-fuujin.rar.html
سلام
دوست عزیز ضمن تشکر خیلی زیاد از زحمت بسیار زیاد شما و اینکه مطمئن باش این مقاله شما راهگشای خیلی از دوستان قرار خواهد گرفت ، باید عرض کنم بعضی از اخلاقیات حاکم بر جامعه ما چندان خوش آیند نیست . مقایسه ای ما بین تعداد بازید های این تاپیک و نظرات و تشکرات داده شده بکن . بعد خواهی دید که ایرانی ها کلا بی تفاوت هستند . اصلا به مسائل رواشناسی این قضایا، که فشردن یه دکمه تشکر علاوه بر قدر دانی از کار شما براحتی میتونه شما رو برای نوشتن مقاله بعدی ترغیب کنه ، توجهی ندارند . پس به عنوان یه دوست پیشنهاد میکنم توی این مملکت در پی افکار تراکنشی نباش که بی تفاوتی از سر و پای مملکت می بارد .
باز هم از رحمت شما تشکر میکنم و امیدوارم باز هم شاهد مقالات بعدی و مفید شما باشیم .
هر چند برای تشکر نباید یه تاپیک ارسال کرد ولی این بار لازم دیدم که این کار رو کنم.
MailMessage mail = new MailMessage();
//set the addresses
mail.From = new MailAddress("hadmin@mydomain.net.com");
mail.To.Add("akhbari65@gmail.com");
//set the content
mail.Subject = "This is an email";
//first we create the Plain Text part
AlternateView plainView = AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", null, "text/plain");
//then we create the Html part
//to embed images, we need to use the prefix 'cid' in the img src value
//the cid value will map to the Content-Id of a Linked resource.
//thus <img src='cid:companylogo'> will map to a LinkedResource with a ContentId of 'companylogo'
AlternateView htmlView = AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:companylogo>", null, "text/html");
//create the LinkedResource (embedded image)
LinkedResource logo = new LinkedResource("http://www.asp.net/App_Themes/Standard/i/logo.png");
کسی میتونه بگه که مشکل از کجاست؟
به خط آخر که میرسم error میده.
دوستان من در رابطه با ارسال ایمیل یه مشکل عجیب دارم
ایمیل به یاهو ارسال میشه اما به gmail ارسال نمیشه
کسی می تونه کمکم کنه
کدا رو چندین بار بررسی کردم اما مشکلی نداره .اگه مشکل داشت یه یاهو هم نمی فرستاد