idpop3.autologin و idpop3.sasLmechanisms
Printable View
idpop3.autologin و idpop3.sasLmechanisms
برای اتصال به یک سرور POP3 توسط کنترلهای Indy.
کامپوننت idPop3 از مجموعه Indy که بطور پیش فرض با دلفی نصب میشه.
پس چرا این برنامه ای که دانلود کردم این ارور رو میده واین رو نمیشناسه؟
ببینید سری Indy را همراه دلفی نصب کرده اید؟
یونیت مربوطه در Uses قرار دارد؟
دقیقا باید چه کار کنم؟منظورتون همون indy misc و client و server و intercepts و i/o hendlers هست ؟
بله اینا رو دارم اما اینو توضیح بدهممنوننقل قول:
یونیت مربوطه در Uses قرار دارد؟
بله Indy Client .
و یونیت IdPOP3 برای این کامپوننت.
IdPOP3,
اگه منظورتون اینه بله این تو قسمت uses هست ولی pop3.autologin اصلا کامپایل نمیشه اگه ممکنه شما خودت امتحان کن ببین برام خیلی مهم خیلی وقته دارم یه mail notifier ساده می نویسم اما هر کاری میکنم connect نمیشه بد جوری اعصابمو ریخته به هم
ممنون
من خودم تا حالا کار نکردم.
این لینک را ببینید.
RapidShare: Easy Filehosting
اقا کسی میتونه اینو دانلود کنه ببینه مشکل از چیه
hsimple11 عزیز اون رو هم نوشتم عین اون مثال ولی ارور داد که نتونستم عکس ارورشو upload کنم شما ببین میتونی اجراش کنی
http://i38.tinypic.com/13z3m6o.jpg
این ارور رو میده
این همه حرفه ای یعنی حتی یه راهنمایی هم کسی نمی تونه بکنه؟
بخاطر اینکه سورسی که دارید، مربوط به Indy 10 هست، ولی نسخه Indy ایی که استفاده می کنید، Indy 9 هست. احتمالا دارید سعی می کنید دموی Indy 10 را با دلفی 7 کامپایل کنید!نقل قول:
ولی pop3.autologin اصلا کامپایل نمیشه
فایل پیوست شده، همون دموی MailClient هست، ولی برای Indy 9؛ که در دلفی 7 بدون مشکل کامپایل میشه و کار میکنه.
ممنون
ولی این هم اون ارور بالا که عکسش رو گذاشتم میده مشکل اون چیه؟
ممنون
ولی این هم اون ارور بالا که عکسش رو گذاشتم میده مشکل اون چیه؟
از چه ورژن دلفی استفاده می کنید؟ از چه ورژن Indy استفاده می کنید؟نقل قول:
ولی این هم اون ارور بالا که عکسش رو گذاشتم میده مشکل اون چیه؟
خطا بالا در چه زمانی اتفاق میافته؟
ورژن 7
در مورد ورژن indy از کجا باید بفهمم ؟ولی فکر کنم ورژن 9 باشه
در مورد سوال اخرتون وقتی روی connect (در برنامه ای که خودتون تو پست 13 upload کردین) یا برنامه هایی که تا حالا نوشتم یا download کردم اون ارور میاد اگه میشه لطف کنید خودتون امتحان کنید
نقل قول:
ادرس =mail.uoz.ac.ir
port=110
uname=ss (اگه باید به صورت ادرس کامل وارد بشه =ss@mail.uoz.ac.ir)
pass=123456
من قبلا با همین دمو کار کردم و درست جواب داده. مشخصاتی که برای سرور دادید، درست کار نکرد، من خطای Host not found گرفتم.نقل قول:
وقتی روی connect (در برنامه ای که خودتون تو پست 13 upload کردین) یا برنامه هایی که تا حالا نوشتم یا download کردم اون ارور میاد اگه میشه لطف کنید خودتون امتحان کنید
شاید اون لحظه سرور مشغول بوده ولی من مطمن هستم که ادرس و پورت رو درست ذادم و uname و pass هم که mail خودم هست و نمی تونه اشتباه باشه
البته منم بعضی وقتها و فقط بعضی وقتها این ارور رو دریافت می کنم و ارروری که بیشتر وقتها دارم همونه که عکشو گذاشتم
لطفا اگه میشه یه وقت دیگه هم تلاش کنید تا connect شه
راستی یه سوال من چه جوری می تونم indy 10 رو نصب کنم تواینترنت گشتم چیزی برای دانلود پیدا نکردم
ممنون
روی دلفی 7 از همون Indy 9 استفاده کنید بهتره.نقل قول:
راستی یه سوال من چه جوری می تونم indy 10 رو نصب کنم تواینترنت گشتم چیزی برای دانلود پیدا نکردم
علت گرفتن خطای بالا، استفاده سرور شما از TLS هست. یعنی اجازه نمیده که Username\password بصورت متن ساده ارسال بشند، باید به سرور بصورت امن متصل بشید، یا سرور خودتون رو طوری تنظیم کنید که از خیر ارتباط امن بگذره.نقل قول:
لبته منم بعضی وقتها و فقط بعضی وقتها این ارور رو دریافت می کنم و ارروری که بیشتر وقتها دارم همونه که عکشو گذاشتم
برای برقراری ارتباط امن با Indy باید از Indy Open SSL استفاده کنید که SSL را بصورت آزاد پیاده سازی کرده و در دو DLL ارائه میشه که باید به همراه فایل برنامه تون باشند. برای استفاده از آنها، باید یک کامپوننت TIdSSLIOHandlerSocket از تب Indy IO Handlers روی فرم بیاندازید و خصوصیت IOHandler کامپوننت idPOP3 خودتون را روی نام آن تنظیم کنید. چون مشکل شما از TLS هست، باید SSLMode را در SSL Option روی sslvTLSv1 تنظیم کنید. البته ممکنه سرور شما نیاز به تنظیمات دیگه هم داشته باشه.
در هر حال، مشکل شما از Indy نیست، بلکه از پیکربندی سرور و چگونگی پیکربندی کلاینت برای ارتباط با آن هست. مثلا GMail هم از اتصال امن TLS استفاده میکنه، ولی با همین کاری که در این پست توضیح دادم، می تونید به راحتی بهش وصل بشید و ای میلها را از Inbox بگیرید.
تقریبا هیچی نفهمیدم:اشتباه:نقل قول:
علت گرفتن خطای بالا، استفاده سرور شما از TLS هست. یعنی اجازه نمیده که Username\password بصورت متن ساده ارسال بشند، باید به سرور بصورت امن متصل بشید، یا سرور خودتون رو طوری تنظیم کنید که از خیر ارتباط امن بگذره.
برای برقراری ارتباط امن با Indy باید از Indy Open SSL استفاده کنید که SSL را بصورت آزاد پیاده سازی کرده و در دو DLL ارائه میشه که باید به همراه فایل برنامه تون باشند. برای استفاده از آنها، باید یک کامپوننت TIdSSLIOHandlerSocket از تب Indy IO Handlers روی فرم بیاندازید و خصوصیت IOHandler کامپوننت idPOP3 خودتون را روی نام آن تنظیم کنید. چون مشکل شما از TLS هست، باید SSLMode را در SSL Option روی sslvTLSv1 تنظیم کنید. البته ممکنه سرور شما نیاز به تنظیمات دیگه هم داشته باشه.
در هر حال، مشکل شما از Indy نیست، بلکه از پیکربندی سرور و چگونگی پیکربندی کلاینت برای ارتباط با آن هست.
با عرض شرمندگی میشه شما این کارا رو بکنی و ببینی که جواب میده یا نه؟:خجالت:
ممنون
روی سرور شما از SSL Connection ایراد میگیره. یه جای کار اتصال به سرور شما ایراد داره، یا نام سرور، یا نام پورت، یا پیکربندی سرور. اما روی GMail بدون مشکل جواب میده. دقت داشته باشید که معمولا سرورهایی که از TLS استفاده می کنند، از پورت پیش فرض 110 استفاده نمی کنند.نقل قول:
با عرض شرمندگی میشه شما این کارا رو بکنی و ببینی که جواب میده یا نه؟
بله بله حق با شماست پورت 995 باید باشه من کر می کردم من اشتباه میکنم و پورت 110 درسته پس معلوم شد پورت 995 درسته
راستی من کارهای بالا رو انجام دادم ولی ارور میده acnnot load ssl lib یا یه چی شبیه این این ربطی به اون dll ها که گفتید داره ؟ راستش من اون قسمتو نفهمیدم از کجا بیرم و توی فایلم بزارم؟
ممنون
شرمنده علی جان که این در خواستو می کنم ولی باور کن من شاید بعضی وقتها حتی 7 یا 8 دقیقه به خاطر باز شدن یه صفحه وب الاف میشم
میشه شما فایل compile شده رو هم upload کنید و اینکه یه توضیحی هم در باره اون صفحه html تو فایل ضمیمه توضیح بدبد اخه توش نوشته
من اگه بخام اینا رو download کنم چیزی حدود 4 یا 5 سال طول میکشهنقل قول:
OpenSSL sources (about 2.7 MB)
MinGW: Minimalist GNU For Windows (about 12 MB)
Perl - e.g. ActivePerl (Version 5.6 about 8 MB)
شما نیازی ندارید که اونها رو دانلود کنید. فایل Zip ضمیمه شده دو تا فایل DLL داره، اونها را در پوشه فایل اجرایی برنامه تون بزارید. در سورس برنامه تون هم اون تغییراتی که در پست شماره 21 گفتم انجام بدید و برنامه را کامپایل و اجرا کنید.نقل قول:
من اگه بخام اینا رو download کنم چیزی حدود 4 یا 5 سال طول میکشه
منم دقیقا همون کارا رو کردم ولی ارور زیز رو میده
راستی در پست 21 منظور از SSLMode ه ssmethod هست ؟اخه این sslvTLSv1 در ssmethod هست نه در ssmode
http://i33.tinypic.com/20fp1qg.jpg
کسی چیزی نمیدونه؟علی اقا شما یه چیزی بگو
بله.نقل قول:
استی در پست 21 منظور از SSLMode ه ssmethod هست ؟اخه این sslvTLSv1 در ssmethod هست نه در ssmode
یعنی هنوز فایل EXE شما نمی تونه فایل های DLL مربوطه را پیدا کنه، یعنی یا فایل های اشتباهی در پوشه مربوطه گذاشتید، یا اصلا فایل ها را در پوشه مربوط به فایل EXE نگذاشتید.نقل قول:
منم دقیقا همون کارا رو کردم ولی ارور زیز رو میده
دیگه چی بگم؟! اینجوری که شما پیش میرید، فکر نکنم تا یکی نشینه و کد را براتون ننویسه و کامپایل نکنه و در یک بسته بندی کامل به همراه راهنمای نصب قرار نده، شما رضایت نمیدید!نقل قول:
علی اقا شما یه چیزی بگو
دست شما درد نکنه دیگه ما انقدرا هم ..... نیستیمنقل قول:
یعنی یا فایل های اشتباهی در پوشه مربوطه گذاشتید، یا اصلا فایل ها را در پوشه مربوط به فایل EXE نگذاشتید.
نه ممنون کد نوشته شدس شما فقط در مورد ارور بالا راهنایی کنید بسهنقل قول:
دیگه چی بگم؟! اینجوری که شما پیش میرید، فکر نکنم تا یکی نشینه و کد را براتون ننویسه و کامپایل نکنه و در یک بسته بندی کامل به همراه راهنمای نصب قرار نده، شما رضایت نمیدید!
شما فکر میکنید همین که قرار شد اینو بنویسم اومدم اینجا نه خیر جانم من الان 2 ماه که دارم روش کار میکنم دیگه کسی رو نمیشناسم از ش بپرسم مجبورم بیام اینجا
ولش کن
اقا یه چیزی ورژن دلفی من 7 و indy 9 هست اگه شما تست کردی ارور نداده شاید برای اینه که ورژن شما فرق میکنه
راستی سایتش پروتکل https هست این مهمه یعنی فرقی میکنه ؟
من هم با همون ورژن تست کردم.نقل قول:
اقا یه چیزی ورژن دلفی من 7 و indy 9 هست اگه شما تست کردی ارور نداده شاید برای اینه که ورژن شما فرق میکنه
می بینید که از TLS استفاده میکنه.نقل قول:
راستی سایتش پروتکل https هست این مهمه یعنی فرقی میکنه ؟
در هر حال، خطای لود نکردن Library SSL مربوط به DLLها هست، و هنوز شما به مرحله کانکت شدن به سایت نرسیدید.
یعنی برا شما کار کرد؟
خوب در این باره یه راهنمایی می کنید؟چرا برای من کار نکرد؟نقل قول:
در هر حال، خطای لود نکردن Library SSL مربوط به DLLها هست
یه نگاه هم به این عکس بندازید اگه باز نشد این لینکش http://i33.tinypic.com/x35lhw.jpg
میبینید که من مو به مو به حرفاتون عمل کردم پس چه دلیلی میتونه داشته باشه ؟ببینم ایراد از شبکه که نیست نه؟منظورم isp و یا dial up بودن و از این جور چیزهاست
http://i33.tinypic.com/x35lhw.jpg
از همون سورسی که مربوط به دموی Indy 9 بود و در صفحه قبل آپلود کردم استفاده کنید و دو تا DLL هم در پوشه مربوط به آن کپی کنید، ببینید آیا با اون برنامه هم همین خطای لود شدن کتابخانه SSL رو میگیرید یا نه.
بله، 10 تا پیام در Inbox شما بود.نقل قول:
یعنی برا شما کار کرد؟
نه دقیقا همون ارور رو میده
فقط خواهش میکنم نگید پس اونجا کپی نکردی چون انقدر این کارو کردم و از اول همه چیزو چک کردم که دیگه وقتی دلفی رو باز میکنم به صورت اتومات همه کار ها رو تکرار میکنم تا حالا هم روی 1000 تا کد جور وا جور این کارو کردم ولی همشون همین ارورو میدن
علی اقا میشه من اینو که کار نکرد رو upload کنم (همه چیزهاشو )شما یه نگا بندازی ؟از نظر منطقی نباید مشکلی باشه
بلهنقل قول:
میشه من اینو که کار نکرد رو upload کنم (همه چیزهاشو )شما یه نگا بندازی ؟از نظر منطقی نباید مشکلی باشه
------------
DLLها را درست دانلود نکردید. فایل های DLL را مجددا از همون لینکی که گذاشتم دانلود کنید. با جایگزین کردن DLLهای شما با DLLهایی که در اون پست گذاشتم، مشکل عدم شناسایی SSL Library برطرف شد.
DLLهای مورد نیاز:
libeay32.dll --> 680KB
ssleay32.dll --> 152KB
با تشکر فراوان از علی اقای کشاورز
اگه میشه به چند سوال پیش اومده هم جوابی بدید ممنون میشم
1.اونی که دانلود کردم 375 kb هست و یه مشکل اینه که message ها رو لیست نمیکنه شاید به خاطر کامل نبودن dll هست
2.property apop چیه؟دقیقا چه کار میکنه ؟
3.من چه طور میتونم یه کاری کنم که مثلا هر 1 دقیقه 1 بار چک کنه که پیام جدید اومده یا نه؟ایا باید timer بزارم و کد زیر رو توش copy کنم؟این راه حل دزسته؟
FMsgCount2 := POP.CheckMessages;
hf fmsgcount2>fmsgcount then
showmessage(inttostr(fmsgcount)+' you have new message');
ربطی به DLL نداره. احتمالا جایی در خود کدهای برنامه مشکل وجود داره.نقل قول:
1.اونی که دانلود کردم 375 kb هست و یه مشکل اینه که message ها رو لیست نمیکنه شاید به خاطر کامل نبودن dll هست
نمی دونم. برای کار با کامپوننت های Indy لازم هست که با پروتکل مربوطه کاملا آشنا باشید.نقل قول:
2.property apop چیه؟دقیقا چه کار میکنه ؟
بلهنقل قول:
من چه طور میتونم یه کاری کنم که مثلا هر 1 دقیقه 1 بار چک کنه که پیام جدید اومده یا نه؟ایا باید timer بزارم و کد زیر رو توش copy کنم؟ا
کد همونه که upload کردم فکر نکنم ایراد داشته یاشهنقل قول:
ربطی به DLL نداره. احتمالا جایی در خود کدهای برنامه مشکل وجود داره.
راستی چرا سایز dll های upload شده یا اندازهای که شما گفتید فرق داره؟این 375 واندازه شما نزدیک به 800 kb هست
ایا iohandher برای smtp هم که میخام برای فرستادن mail ازش استفاده کنم هم باید روی Form1.IdSSLIOHandlerSocket1تنظیم بشه؟
ممنون
تا جایی که من یادم هست، هر دو یکی هستند.نقل قول:
راستی چرا سایز dll های upload شده یا اندازهای که شما گفتید فرق داره؟این 375 واندازه شما نزدیک به 800 kb هست
من بررسی نکردم، اما کدهای Demo هم عاری از اشکال نیستند.نقل قول:
کد همونه که upload کردم فکر نکنم ایراد داشته یاشه
بلهنقل قول:
ایا iohandher برای smtp هم که میخام برای فرستادن mail ازش استفاده کنم هم باید روی Form1.IdSSLIOHandlerSocket1تنظیم بشه؟
علی اقا من سرچ کردم ولی ادرس pop و smtp سایت google رو پیدا نکردم میشه ادرس و port اونا رو بگید رو اون هم امتحان کنم اخه مثل اینکه سروری که براش اون برنامه رو نوشتم مشکل داره نه سایت باز میشه و نه برنامه host رو پیدا میکنه
پیدا کردن آدرس های GMail کار سختی نیست:
http://www.google.com/search?q=GMail+POP3+SMTP+Address
این لینک هم برای تنظیماتی که باید در Indy اعمال کنید:
http://delphiptt.blogspot.com/2006/0...with-indy.html
ممنون علی اقا من قبلا این ادرس رو پیدا کرده بودم pop.googlemail.com ,و 995 و همچنین smtp.googlemail.com و 587 ولی موقع اجرا host not found میزد ولی دیشب که امتحان کردم بدون مشکل اجرا شد نمی دونم چرا مشکل load کردن mail ها هم حل شد
فقط مشکل برای send کردن هست من هر وقت می خام send mail کنم اروری میده که الان دارم عکشو upload میکنم ممنون میشم در این مورد کمکم کنید
SMTP.Username := form1.uname.text;
SMTP.Password := form1.pass.Text;
{General setup}
//SMTP.Host := edit2.text;
//SMTP.Port := strtoint(edit3.Text);
{now we send the message}
//form1.POP.disConnect;
SMTP.Connect;
try
SMTP.Send(IdMsgSend);
finally
SMTP.Disconnect;
این کدشه اگه smtp .connect باشه میزنه already connected اگه پاکش کنم میزنه malformed command و یه سری چیزهای نا مفهوم ادامش اگه بخام به جای pop ابتدا با smtp کانکت بشم میزنه socket not connected حالا موندم چه کار کنم
ممنون
از همون کد MailClient برای آزمایش استفاده کنید. در ضمن، توجه داشته باشید که باید یک IdSSLIOHandlerSocket هم به IdSMTP متصل باشه و Method آن هم sslvTLSv1 باشه. خصوصیت AuthenticationType در IdSMTP هم باید atLogin باشه. در ضمن، آدرس سرور SMTP مربوط به GMAIL این هست:
smtp.gmail.com
port = 465
تا جايي كه من مي دونم براي اتصال به سرور pop3جي ميل بايد از اتصال امن ssl استفاده كنين ولي مي تونين براي تست دموي خودتون يه اكانت از سرور runbox ايجاد كنين و آدرس رو به صورت (pop3.runbox.com) و پورت رو هم (110 ست كنين ).
یه جای دیگه بزارید که بشه
برای همین هم هست که از IdSSLIOHandlerSocket به عنوان IOHandler برای IdPOP3 استفاده شده. مشکلی در ارتباط برقرار کردن با SMTP Server و POP3 Server مربوط به GMail از طریق Indy وجود نداره.نقل قول:
تا جايي كه من مي دونم براي اتصال به سرور pop3جي ميل بايد از اتصال امن ssl استفاده كنين
چی رو یه جای دیگه بزارند؟!نقل قول:
یه جای دیگه بزارید که بشه