السلام عليكم اريد أن أف ماهي الطريقة المثالية لإرسال e-mail عن طريق Qt
علما و أني جربت هذه الطريقة لكن دون جدوى http://www.qtcentre.org/threads/2221-Sending-email-using-Qt
إني بحاجة لكود إن أمكن و شكرا
السلام عليكم اريد أن أف ماهي الطريقة المثالية لإرسال e-mail عن طريق Qt
علما و أني جربت هذه الطريقة لكن دون جدوى http://www.qtcentre.org/threads/2221-Sending-email-using-Qt
إني بحاجة لكود إن أمكن و شكرا
alonso15 كتب:السلام عليكم اريد أن أف ماهي الطريقة المثالية لإرسال e-mail عن طريق Qt
علما و أني جربت هذه الطريقة لكن دون جدوى http://www.qtcentre.org/threads/2221-Sending-email-using-Qt
إني بحاجة لكود إن أمكن و شكرا
ماهي الاخطاء التي ظهرت لك ؟
هل غير اعدادات الخادم في السطر 26 من smtp.cpp ?
تم تعديل هذه المشاركة بواسطة ihope في 25 أغسطس 2011 في 03:03
نعم لقد قمت بتغييرها على النحو التالي
socket->connectToHost( "plus.smtp.mail.yahoo.com", 465);
و قد قمت بتغيير الإيميل بالطبع إلى yahoo
ولن هذا ما يظهر لي في console
stateChanged QAbstractSocket::HostLookupState
stateChanged QAbstractSocket::ConnectingState
stateChanged QAbstractSocket::ConnectedState
Connected
connected
error QAbstractSocket::RemoteHostClosedError
stateChanged QAbstractSocket::ClosingState
stateChanged QAbstractSocket::UnconnectedState
disconneted
error "The remote host closed the connection"
alonso15 كتب:نعم لقد قمت بتغييرها على النحو التالي
socket->connectToHost( "plus.smtp.mail.yahoo.com", 465);و قد قمت بتغيير الإيميل بالطبع إلى yahoo
ولن هذا ما يظهر لي في console
stateChanged QAbstractSocket::HostLookupState
stateChanged QAbstractSocket::ConnectingState
stateChanged QAbstractSocket::ConnectedState
Connected
connected
error QAbstractSocket::RemoteHostClosedError
stateChanged QAbstractSocket::ClosingState
stateChanged QAbstractSocket::UnconnectedState
disconneted
error "The remote host closed the connection"
هذه الفئة لاتدعم الاتصال المشفر
عرف السوكيت كالتالي
QSslSocket *socket;
و اضف
socket->startClientEncryption();
في smtp.cpp
واذا اردت بديل مناسب جرب http://blog.wysota.eu.org/index.php/2009/03/12/qwwsmtpclient/
تم تعديل هذه المشاركة بواسطة ihope في 25 أغسطس 2011 في 03:32
أخي لا يمكن ذلك انظر
myfile.cpp:7: error: 'class QTcpSocket' has no member named 'startClientEncryption'
mingw32-make[1]: *** [debug/FenPrincipale.o] Error 1
mingw32-make[1]: Leaving directory `C:/Projects/email'
mingw32-make: *** [debug] Error 2
ربما تتحدث عن QSslSocket وليس QTcpSocket التي نستعماها في المثال socket*
لم أفهم ما تقصد في المشاركة الأخيرة لكني سأجرب الرابط الذي وضعته و سأوافيك بالنتائج غدا إن شاء الله :)
أخي عندما أجرب QSslSocket البرنامج لايعمل و هذه صورة

ربما لأن startClientEncryption هو SLOT وليس FUNCTION
بعد التجربة
انصحك باستخدام الفئة التالية اراها افضل بكثير
http://qt-apps.org/content/show.php/Class+for+sending+mail?content=140925
قبل استخدامها عليك بتحميل openssl من هنا
http://www.slproweb.com/products/Win32OpenSSL.html
بعد التحميل وبخلال التنصيب سيسأل عن مكان وضع ملفات الـ Dll
اختر الاختيار الثاني .......to bin
ثم نسخ الملفين من مجلد
c:\openssl\bin
الى المجلد الذي يحوي QtNetwork.dll
وغالبا هو َQt\QTVERSION\bin
في الملف main.cpp
غير الاعدادات للدخول من سطر 11- 22
وفعل الـ tls في السطر 22
انا جربته مع الجيميل و النتيجة رسالة جديدة في صندوق الوارد
تحياتي
تم تعديل هذه المشاركة بواسطة ihope في 26 أغسطس 2011 في 03:14
مشكور أخي العزيز ihope على التعاون
لكني وجدت الحل في هذا الموقع الالماني http://www.qtforum.de/forum/viewtopic.php?t=2172
صحيح أن اللغة غير مفهومة لكن ما عليك سوى استعمال الكود
ان واجهت مشكل في الكود ما عليك سوى أن تسألني