PDA

View Full Version : نحوه ی ارسال ایمیل



manager
یک شنبه 03 مهر 1384, 07:31 صبح
سلام

من سعی می کنم در یه صفحه میل بفرستم ولی پیغام Could not access 'CDO.Message' object. رو دریافت می کنم لطفا من را راهنمایی کنید ؟!!!

لازم به ذکر من از smtp.gmail.com به عنوان smtp server استفاده می کنم. :چشمک:

Peyman_Ranjbar
دوشنبه 04 مهر 1384, 00:44 صبح
برای اینکار لازمه که هاست شما امکان فرستادن میل رو براتون فراهم کنه حتی اگه mailserver روی اون هاست نباشه
مثلا brinkster از این امکان پشتیبانی نمی کنه!!!!

ealireza
دوشنبه 04 مهر 1384, 12:12 عصر
میتونی از یک کنترول های ASP.net استفاده کنی
یک کنترول برای میل داشت اسمش یادم نیست ایرانی بود فارسی هم ساپورت میکرد
امکان اتصال به SMTP رو هم داشت
CLS MAIL هم خوب جواب میده
همراشون مثال هست
موفق باشید ...

Peyman_Ranjbar
دوشنبه 04 مهر 1384, 22:00 عصر
کنترل IrMail رو میگید؟
توی سایت iranasp.net می تونید پیداش کنید.
ولی فکر کنم اون هم احتیاج به CDO داشته باشه!(من امتحان نکردم)

ealireza
سه شنبه 05 مهر 1384, 12:14 عصر
دقیقا بله IRMAil هست ..
خیلی هم راحته ...

manager
سه شنبه 05 مهر 1384, 21:48 عصر
یعنی باز هم تو ASP.Net مشکل ایمیل داریم باز هم مثل ASP صابق من نمی دونم کی مشکل ایمیل ما حل می شه بابا برنامه نویسای دیگه مثل PHP اصلا یه همچین مشکلی ندارن ! یعنی ASP.Net قابلیت ارسال میل نداره ؟!!

Behrouz_Rad
سه شنبه 05 مهر 1384, 22:11 عصر
دقیقا بفرمایید به چه شکل E_Mail ارسال می کنید تا راهنماییتون کنم.

Peyman_Ranjbar
چهارشنبه 06 مهر 1384, 05:27 صبح
یعنی باز هم تو ASP.Net مشکل ایمیل داریم باز هم مثل ASP صابق من نمی دونم کی مشکل ایمیل ما حل می شه بابا برنامه نویسای دیگه مثل PHP اصلا یه همچین مشکلی ندارن ! یعنی ASP.Net قابلیت ارسال میل نداره ؟!!

php کار ها که رو هوا میل نمی فرستند!! اون ها هم از cdo استفاده می کنن منتها برای جلوگیری از اذیت و آزار توسط کاربرهای مریض این قابلیت توسط اکثر وبسایتهای رایگان پشتیبانی نمیشه و یا خیلی محدوده

موفق باشی

rohollahmahmoodiany
جمعه 11 آذر 1384, 17:14 عصر
اقا من میخواهم که از irmail استفاده کنم.اما نمیدانم چگونه ؟این راهنمایی را در سایت iranasp دیدم اما چون به vb است در تبدیل ان بهc#به مشکل برخوردم.ان طوری که گفته میشود این روش بهترین ابزار برای ارسال ایمیل است ایا واقعا اینگونه است؟


نمونه ای از نحوه استفاده از شئ IrMail

از آنجا که این شئ در هر بار ایجاد نیاز به تنظیمات خاصی دارد (مثلا Username ،Password، محل دخیره سازی نامه های ارسال نشده و...) که برای هر سایت منحصربفرد است، پیشنهاد می شود که به صورت زیر عمل شود.

یک کلاس از کلاس IrMail.Mail را به ارث برده و تنظیمات خاص خود را در سازنده (Constructor) آن قرار دهید. در هنگام نیاز به ارسال نامه فقط کافی است یک نمونه از کلاس ارث بری شده را ایجاد کنید (نمونه ای از این ارث بری در زیربه زبان VB.NET نشان داده شده است).



Public Class MySmtpMail
Inherits IrMail.Mail

Public Sub New()

MyBase.New(HttpContext.Current.Server.MapPath("") )

مقدار پارامتر سازنده کلاس IrMail.Mail محل مکانی را نشان می دهد که می خواهید نامه های ارسال نشده در آنجا ذخیره شود. در این مثال محل دخیره سازی را برابر با دایرکتوری ریشه سایت قرار دادیم . شما می توانید جهت امنیت بیشتر، این محل را تغییر و به مکان دیگری منتقل کنید (بطور مثال دایرکتوری محل ذخیره DBها که معمولا fpdb می باشد).


Me.SMTPserver = "YourSMTPServer"
Me.PickUpDirectory = "c:\inetpub\mailroot\pickup"

خصیصه فوق (PickUpDirectory) مورد نیاز SMTP Server می باشد.


Me.UserName = "YourUsername"
Me.Password = "YourPassword"

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


Me.UTF8AnyWhere = True

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


Me.LoadSharedObject4WebApplication(HttpContext.Cur rent)

استفاده از دستور فوق همیشه اجباری است و باید به همین صورت باشد. در صورتی که دستور فوق ذکر نشود، مکن است شئ شما با مشکل مواجه گردد.


End Sub
End Class
حال هرجا در سایت خود قصد داشتید که نامه ای را ارسال کنید، کافیست یک نمونه از کلاس فوق را ساخته و سایر خصوصیات آنرا تنظیم نمایید. به عنوان مثال:


Dim ObjMailer As New MySmtpMail ()
ObjMailer.From = "EveryOne@Server.Com"
ObjMailer.To= "EveryOne@AnotherServer.Com"
ObjMailer.Subject = "New Email Object"
ObjMailer.Body= "The body of your mail in each language"
ObjMailer.Send()
دوستانی که تمایل دارند این dll را دریافت کنند:
http://www27.brinkster.com/mahmoud690/irmail/downloadAssembly.htm.htm
و این هم سورس:
http://www27.brinkster.com/mahmoud690/irmail/Download-source.htm

rohollahmahmoodiany
یک شنبه 20 آذر 1384, 22:26 عصر
دقیقا بفرمایید به چه شکل E_Mail ارسال می کنید تا راهنماییتون کنم.
با سلام
اقای راد من از کد زیر برای ارسال ایمیل استفاده میکنم .روی سیستم خودم بدون مشکل جواب میدهد اما روی هاست جواب نمیدهد .مدیر هاست میگوید که امکان ارسال ایمیل وجود دارد ایا مشکل ار سرور است یا کد اشکال دارد.امیدوارم که راهنمایی لازم را بفرمایید
MailMessage mail = new MailMessage();
mail.To = "rohollahmahmoodiany@yahoo.com";
mail.From = txtfrom.Text ;
mail.Subject = txtsubject .Text ;
mail.Body = TextBox1 .Text ;
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "abadancitynet@abadancity.net"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "123456"); //set your password here
mail .Fields .Add ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout", 60);


SmtpMail.SmtpServer = "mail.abadancity.net"; //your real server goes here
SmtpMail.Send( mail );

rohollahmahmoodiany
یک شنبه 20 آذر 1384, 22:31 عصر
دقیقا بفرمایید به چه شکل E_Mail ارسال می کنید تا راهنماییتون کنم.
با سلام
اقای راد من از کد زیر برای ارسال ایمیل استفاده میکنم .روی سیستم خودم بدون مشکل جواب میدهد اما روی هاست جواب نمیدهد .مدیر هاست میگوید که امکان ارسال ایمیل وجود دارد ایا مشکل ار سرور است یا کد اشکال دارد.امیدوارم که راهنمایی لازم را بفرمایید و خطای زیر را میدهد:

Could not create 'CDO.Message' object.
MailMessage mail = new MailMessage();
mail.To = "rohollahmahmoodiany@yahoo.com";
mail.From = txtfrom.Text ;
mail.Subject = txtsubject .Text ;
mail.Body = TextBox1 .Text ;
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "abadancitynet@abadancity.net"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "123456"); //set your password here
mail .Fields .Add ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout", 60);


SmtpMail.SmtpServer = "mail.abadancity.net"; //your real server goes here
SmtpMail.Send( mail );

javad3151
دوشنبه 21 آذر 1384, 17:50 عصر
سلام
فایل cdosys.dll رو در پوشه bin بگذارید و بعد به reference پروژه اضافه کنید.
(نقل از آقای راد)

rohollahmahmoodiany
سه شنبه 22 آذر 1384, 09:41 صبح
سلام
فایل cdosys.dll رو در پوشه bin بگذارید و بعد به reference پروژه اضافه کنید.
(نقل از آقای راد)
آقا ممنون .
من ابتدا فایل گفته شده را در پوشه بین کپی کردم و سپس با استفاده از منوی project- addrefrence این فایل را به پروژه اضافه کردم سپس using cdo را به ابتدای فرم اضافه کردم پس از کامپایل پوشه bin را در هاست کپی کردم اما باز هم همان خطا را میداد .ایا کار دیگری باید انجام بدهم؟

rohollahmahmoodiany
چهارشنبه 23 آذر 1384, 10:51 صبح
با استفاده از inner exception خطای زیر تولید شد ایا کسی میتواند این خطا را تفسیر کند؟
The following exception occurred: System.Web.HttpException: Could not create 'CDO.Message' object. at System.Web.Mail.LateBoundAccessHelper.get_LateBoun dType() at System.Web.Mail.CdoSysHelper.Send(MailMessage message) at System.Web.Mail.SmtpMail.Send(MailMessage message) at WebApplication11.email.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\webapplication11\email.aspx.cs: line 72

Behrouz_Rad
پنج شنبه 24 آذر 1384, 16:31 عصر
فایل cdosys.dll را در پوشه ی bin قرار بدید.
سپس یک Reference به آن ایجاد کرده و از آن استفاده کنید.
دقت داشته باشید که #C به بزرگ و کوچک بودن حروف حساس است.
CDO باید با حروف بزرگ نوشته شود.
در صورتی که تمامی موارد فوق را انجام دادید و همچنان ناموفق بودید، فایل ضمیمه ی این پست را نیز در پوشه ی bin قرار دهید. (افزودن به صورت Reference نیازی نیست)

اصولا ارسال ایمیل یکی از مواردی هست که برنامه نویس رو کمی تا قسمتی اذیت می کنه.
قبول دارم ممکنه در مراحل اول با مشکل برخورد کنید.
تنها راه، ارتباط مداوم با تیم ساپورت هاست است.
بعضی مواقع، درست در زمانی که همه چیز درست به نظر می رسه، اما نتیجه ی کار، دلخواه نیست!
مثل امروز که یکی از سایت های ما در ارسال ایمیل مشکل پیدا کرده بود!
در CP سایت، تعیین شده بود که ایمیل های ارسال به آدرس info!@mysite.com، به یک اکانت یاهو، Redirect شود اما اینکار انجام نمی پذیرفت!
حدس زده شد که مشکل از جانب ما نیست و از یاهو دگر ما رو دوست ندارد!
در نهایت متوجه شدیم که به خاطر رعایت نکردن قوانین ارسال ایمیل، نامه های ارسالی به صورت Spam در نظر گرفته شده و یاهو از دریافت آنها خوددای می کند.
فعلا Gmail، ما را به عنوان دوست خود پذیرفته اما این دوستی نیز در صورت عدم رعایت قوانین از جانب ما، زیاد پایدار نخواهد بود!
موفق باشید.

PrinceDotNet
پنج شنبه 24 آذر 1384, 23:55 عصر
اقای راد میشه چند تا از نمونه کارهای وبتون رو بگید تا ما هم ببینیم.

Behrouz_Rad
جمعه 25 آذر 1384, 00:39 صبح
سایت هایی رو که ایجاد کردم به دلایل شخصی نمی تونم بیان کنم اما فعلا در حال کار بر روی وب سایت شرکت خودمون در آدرس http://www.yektadev.com هستم.
موفق باشید.

spicirmkh
شنبه 26 آذر 1384, 10:45 صبح
سلام

دوستان بخصوص آقای راد

من 2 تا مشکل ارسال ایمیل دارم

1- ایمیل من می رود توی spam چکار کنم نرود
2- می خواهم تصاویر توی متن ایمیل باشد همراه با ایمیل نه ضمیمه Attach

با تشکر

spicirmkh
یک شنبه 27 آذر 1384, 10:45 صبح
سلام

این پیغام خطا چی هست و چه کار باید بکنم

Method not found: System.Collections.IDictionary System.Web.Mail.MailMessage.get_Fields().
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.MissingMethodException: Method not found: System.Collections.IDictionary System.Web.Mail.MailMessage.get_Fields().

Source Error:


Line 9: Public Sub New()
Line 10:
Line 11: MyBase.New(HttpContext.Current.Server.MapPath(""))
Line 12: 'We set the StoragePath property (first constructor parameter)
Line 13: 'to your site root directory. You can change it if you want to save


Source File: c:\inetpub\wwwroot\irmail\TestIramail\WebForm1.asp x.vb Line: 11


با تشکر