# Native Code > برنامه نویسی در Delphi > توسعه نرم افزارهای تحت شبکه >  مشکل ارسال ایمیل با SMTP

## solook

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

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

چیکار باید کرد؟

----------


## amin_alexi

سلام 
از چه ورژنی از دلفی استفاده می کنی !
از Indy استفاده می کنی ؟
اگه از Delphi 7 و Indy استاده می کنی ... و با Gmail باید از SSL استفاده کنی ..
این 2 تا Dll رو دانلود کن ... (libeay32.dll ; ssleay32.dll)
یک خط دستور رو اضافه کن به شرطی که Server از SSL استفاده می کنه ...

    If SSL Then
     idSMTP.IOHandler :=TIdSSLIOHandlerSocket.Create(Self);


برای SSL از Port شماره 465 استفاده کن ....
و یه تست کن شاید آنتی ویروس Port رو بسته باشه ...

----------


## vcldeveloper

این تاپیک را تا صفحه آخر بخوانید:
http://www.barnamenevis.org/sh...d.php?t=114287

----------


## pm.hamze

جناب solook لطفا میشه یه سورسی که واقعا تونسته باشید باهاش به یاهو  ایمیل بفرستید به من معرفی کنید.

----------


## solook

اون تاپیک رو خوندم 
ظاهرا باید از Dll های مربوطه استفاده کنم

اما حقیقتش راهی نیست که نیازی به اون dll  ها نباشه؟

----------


## solook

> جناب solook لطفا میشه یه سورسی که واقعا تونسته باشید باهاش به یاهو  ایمیل بفرستید به من معرفی کنید.



من قبلا با این کار میکردم جواب میداد

----------


## pm.hamze

دوست عزیز *Smtp Server  های یاهو بسته شده است باید چکار کرد.*

----------


## aserfg

برادر گرامي اگه شما مي خواين به ياهو ميل بزنين چكار به smtp serverياهو دارين . شما مي تونين براي تست برنامتون يه اكانت runboxايجاد كرده البته به صورت يه ماهه رايگانه .بعد به هر جايي خواستين ميل بزنين.

----------


## pm.hamze

با سلام دوست عزیز


> اكانت runboxايجاد كرده


 یعنی چی و چطوری باید ایجاد بشه.

----------


## amin_alexi

> اون تاپیک رو خوندم 
> ظاهرا باید از Dll های مربوطه استفاده کنم
> 
> اما حقیقتش راهی نیست که نیازی به اون dll  ها نباشه؟


منم قبلا دنبال یه راه بودم .... گشتم و گشتم و دیدم همینه !!!
شاید بشه با Component دیگه ای نوشت ... ولی به درده سرش نمی ارزه ....
ولی وقتی به این خوبی در اون تاپیک توصیح داده شده ... !!!

----------


## vcldeveloper

> اما حقیقتش راهی نیست که نیازی به اون dll  ها نباشه؟


اون DLLها پیاده سازی OpenSSL هستند، بهشون نیاز دارید، چون بالاخره وقتی از SSL استفاده می کنید، باید یک پیاده سازی از آن موجود باشه. چون OpenSSL آزاد بود، Indy برای ارتباط مبتی بر SSL ازش استفاده کرد. سورس کدی هم که ازش موجود هست، برپایه C هست.

----------


## solook

خب من اون dll  ها رو در پوشه برنامه گذاشتم
و TIdSSLIOHandlerSocket هم با تنظیمات مربوطه روی فرم گذاشتم
خصوصیت IOHandler کامپوننت SMTP را روی TIdSSLIOHandlerSocketقرار دادم

حالا این پیامو میده :
ERROR: Error connecting with SSL.


چیکارش کنم

----------


## solook

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

یا علی

----------


## persianspam

> دوست عزیز *Smtp Server  های یاهو بسته شده است باید چکار کرد.*



اگه از Yahoo Ca استفاده کنی هنوز فعاله . mail.yahoo.ca
smtp.mail.yahoo.ca
pop.mail.yahoo.ca

وقتی ساختی باید بری تو میل آپشن و Pop3 رو فعال کنی.

----------


## saeed7007

به پیر به پیغمبر هیچ کدوم جواب نمیده

یکی به داد ما برسه...

----------


## mtfa65

طبق این لینکک زیر
https://barnamenevis.org/showthread.p...-ط¨ط§-SMTP
 همین پیغام رو می ده چیکار کنم
خب من اون dll  ها رو در پوشه برنامه گذاشتم
 و TIdSSLIOHandlerSocket هم با تنظیمات مربوطه روی فرم گذاشتم
 خصوصیت IOHandler کامپوننت SMTP را روی TIdSSLIOHandlerSocketقرار دادم

 حالا این پیامو میده :
ERROR: Error connecting with SSL.


چیکارش کنم

----------


## Mask

مرده از زیر خاک بیرون نکش داداش.
علم غیب نداریم که. کدهاتو بزار ببینیم چی نوشتی.

----------


## mtfa65

سلام
البته از دو  libeay32.dll ; ssleay32.dll  طبق گفته بالا دانلود کردم و استفاده کردم که پیغام   ERROR: Error connecting with SSL.   رو می ده. و از حساب جی میل استفاده می کنم.
host: smtp.gmail.com و پورت :465  وارد میکنم.
اگر امکان داشته باشه می خوام از dll ها استفاده نکنم و فقط در داخل خود برنامه دستورات باشه نمی خوام dll باز خوانی بشه. بسیار ممنون.
procedure TForm1.bbtnOkClick(Sender: TObject);
begin
         IdMsgSend.Body.Assign(Memo1.Lines);
         IdMsgSend.Recipients.EMailAddresses := edtTo.Text; { To: header }
         IdMsgSend.Subject := edtSubject.Text; { Subject: header }
         IdMsgSend.CCList.EMailAddresses := edtCC.Text; {CC}
         IdMsgSend.BccList.EMailAddresses := edtBCC.Text; {BBC}
 
   SMTP.Username := edtAccount.Text;
   SMTP.Password := edtPassword.Text;
   {General setup}
   SMTP.Host := SMTPServer.Text;
   SMTP.Port := StrToint(SMTPPort.Text);
   {now we send the message}
   SMTP.Connect;
      try
      SMTP.Send(IdMsgSend);
   finally
      SMTP.Disconnect;
end;
end;

----------


## Mask

مشکل شما در تنظیم IdSSLIOHandlerSocketOpenSSL و مرتبط کردنتون به smtp هست.
برای روشن شدن موضوع کلیه ارتباطات رو به صورت کد نویسی انجام بدید ، نه حالت دیزاین . تا بشه هم راحتتر مدیریت کرد و هم اینکه اینجا قرار بدی تا بشه عیب اصلی رو تشخیص داد.



> اگر امکان داشته باشه می خوام از dll ها استفاده نکنم و فقط در داخل خود برنامه دستورات باشه نمی خوام dll باز خوانی بشه


نه خیر  نمیشه. این dll ها برای ارتباط ssl به میل سرور جیمیل هست.
اگه براتون سخته استفاده از این dll ها ، میتونید از میل سرور یاهو استفاده کنید یا خودتون میل سرور راه بندازید.

----------


## mtfa65

> مشکل شما در تنظیم IdSSLIOHandlerSocketOpenSSL و مرتبط کردنتون به smtp هست.
> برای روشن شدن موضوع کلیه ارتباطات رو به صورت کد نویسی انجام بدید ، نه حالت دیزاین . تا بشه هم راحتتر مدیریت کرد و هم اینکه اینجا قرار بدی تا بشه عیب اصلی رو تشخیص داد.
> 
> نه خیر  نمیشه. این dll ها برای ارتباط ssl به میل سرور جیمیل هست.
> اگه براتون سخته استفاده از این dll ها ، میتونید از میل سرور یاهو استفاده کنید یا خودتون میل سرور راه بندازید.


خب نمیشه دستورات dll رو در خود برنامه نوشت؟
من نمیدونم  محتوای dll چی هست اگر امکان داشته باشه محتوای این dll ها یا چیزی شبیه به اون رو برام بذارید ممنون می شم.

----------


## Mask

> خب نمیشه دستورات dll رو در خود برنامه نوشت؟
> من نمیدونم  محتوای dll چی هست اگر امکان داشته باشه محتوای این dll ها یا چیزی شبیه به اون رو برام بذارید ممنون می شم.


 اگه خیلی براتون مهمه، با شرکت تولید کننده تماس بگیرید و پس از پرداخت هزینه هایی که دارند، سورس رو خریداری کنید.
بعدشم، اگه قرار بود مستندات ssl در اختیار عموم باشه، پس امنیت کجا میره.

----------


## mtfa65

سلام دوست عزیز
مثل اینکه چاره دیگه ای نیست.
خب وقتی از dll ها هم استفاده می کنیم چرا پیغام ERROR: Error connecting with SSL رو می ده؟؟
چیکار باید بکنیم که سورس ما dll ها رو بخونه؟ وبتونه با sll وصل بشه؟
با تشکر

----------


## Mask

شما انگار اصلا پستهای من رو نمیخونید .
دو راه خدمتت گفتم :
وضعیت ارتباط  IdSSLIOHandlerSocketOpenSSL و  smtp رو به صورت کد نویسی انجام دهید و اینجا قرار بدید تا بررسی بشه.
از میل سرور یاهو استفاده کنید یا خودتون راه اندازی کنید،تا نیاز به dll ها نباشه.

----------


## mtfa65

سلام دوست عزیز
من از فایل آموزشی که پیوست کردم استفاده می کنم. ولی ایمیل ارسال نمیشه. حالا هر مشکلی داره رو شما بفرمایید. فقط هر کاری که نیاز باشه انجام می دم ولی تورو خدا از فایل dll استفاده نکنم.
مرسی
Mail Sender.rar

و اینکه آیا با aol می شه بدون استفاده از dll ها ایمیل رو فرستاد؟ اگر می شه آدر هاست aol چی هست؟ اگر می دونید لطفا بفرمایید.
با تشکر

----------


## Mask

در این پست نمونه کد و توضیحات لازم داده شده، میتونید استفاده کنید.

----------


## mtfa65

سلام دوست عزیز
بالاخره تونستم ایمیل رو ارسال کنم
بهتره مشکل رو بگم تا اگر کسی من من این مشکل رو داشت بتونه حل کنه.
بعد از کپی dll ها در مسیر پروژه و قرار دادن کامپوننت IdSSLIOHandlerSocket1  در قسمت ssloptions خاصیت method را sslvSSLv2 می کنیم در این صورت پیغام ERROR: Error connecting with SSl را نخواهد داد
با تشکر

----------


## mtfa65

با سلام
حالا می خوام ایمیل گروهی ارسال کنم به چه صورت باید عمل کنم.
مثلا برای تبلیغات برای هر شرکتی که خواستم به تمامی کاربران ایمیل تبلیغاتی ارسال کنم باید به چه صورت عمل کنم؟
فرضا برای تمامی کاربران msn و yahoo و google و یا هر شرکتی که بخواهیم به تمامی کاربران ایمیل ارسال کنیم.
و سوال دوم اینکه با دلفی چطور می تونم ایمیلهایی که برای من ارسال شده رو ببینم؟
با تشکر.

----------


## h_mohamadi

> سلام دوست عزیز
> بالاخره تونستم ایمیل رو ارسال کنم
> بهتره مشکل رو بگم تا اگر کسی من من این مشکل رو داشت بتونه حل کنه.
> بعد از کپی dll ها در مسیر پروژه و قرار دادن کامپوننت IdSSLIOHandlerSocket1  در قسمت ssloptions خاصیت method را sslvSSLv2 می کنیم در این صورت پیغام ERROR: Error connecting with SSl را نخواهد داد
> با تشکر


سلام 
من سمپل ارسال ایمیل با SMTP را گرفتم اما بعد از وارد کردن تظیمات ارور  زیر را می دهد
می شود راهنمایی بفرمائید

----------

