حسنا ، هذا يمكن أن يكون فرصة تعليمية جيدة بالنسبة ليOriginally Posted by ;
- فقط عند الاستكشاف الأولي ، يبدو أن هناك العديد من الطرق للقيام بذلك. كان الفكر الآخر الذي أستخدمه هو استخدام وظيفة 'WindowScreenShot' ومن ثم اقتطاع برنامج نصي الدليل وإرسال أية ملفات جديدة تصل إلى البريد الإلكتروني. من الآن فصاعدا ، سيكون هذا مشروعًا صغيرًا بالنسبة لي. حسنا ابقي ملصقك.
متفق عليه. أحب أن يكون لديك ميزةوظيفة أود حقا ..... أنها تساعد على تحفيز لي للتعلم
لقد برزت أيضا كيفية استدعاء ملف خارجي .exe باستخدام ShellExecuteA (بعد استيراد Shell32.dll في إينديور). لقد عثرت على برنامج إرسال بريد SMTP وهو برنامج نصي AutoIT (ملحق .au3) وقمت بتحويله إلى exe. حتى الآن ، يعمل indy عند تشغيل التنبيه ، فإنه يحفظ الملف إلى دليل البريد الإلكتروني لي باستخدام البرنامج النصي الخارجي. أنا فقط بحاجة إلى إيجاد طريقة جيدة لتسمية الملفات ثم طريقة لإرفاقها. أفكر في حفظ الملف باسم xxxx.gif ثم بعد تنفيذ البرنامج النصي ، إعادة تسمية الملف إلى Sent_xxxxx.gif بهذه الطريقة يمكن أن يكون البرنامج النصي الخارجي متكرر عبر الدليل لأي ملف ينتهي بـ .gif لا لديك البادئة SENT. حتى الان جيدة جدا
الجزء SMTP هو الأصعب. هناك الكثير من الرموز الفاسدة وغير القابلة للتنفيذ هناك. بمجرد أن يتم ذلك ، فقط ربط كل شيء معا وإضافة بعض أجراس وصفارات.
إليك رمز البرنامج النصي AutoIT الذي أستخدمه - قمت بتحويله إلى exe لاستخدامي .......... أحاول معرفة كيف يمكنني استخدام ملف .ini أو. ملف txt لعقد المتغيرات لخوادم البريد الإلكتروني وغيرها ، بحيث يمكن أن يكون ملف EXE العالمي وقابل للنقل بسهولة. تم إدخال الرمز #cs ---------------------------------------------- ------------------------------ AutoIt الإصدار: 3.2.12.1 المؤلف: myName Script Function: قالب AutoIt script. #ce ------------------------------------------------ ----------------------------؛ بدء البرنامج النصي - أضف رمزك أدناه هنا ؛ ؛ #################################؛ تضمين ؛ #########################Includelt؛ file.au3gt؛ ؛ #################################؛ المتغيرات ؛ ############################### $ SmtpServer = mail.xxx.com.au؛ عنوان لخادم smtp لاستخدام - المطلوب $ FromName = منصة التداول؛ اسم من الذي تم إرسال البريد الإلكتروني $ FromAddress = [email protected]؛ العنوان من حيث يجب أن يأتي البريد $ ToAddress = [email protected]؛ عنوان الوجهة للبريد الإلكتروني - REQUIRED $ Subject = xxxxx؛ موضوع من البريد الإلكتروني - يمكن أن يكون أي شيء تريده أن يكون $ Body = xxxxxxx؛ messagebody من البريد - يمكن تركها فارغة ولكن بعد ذلك يمكنك الحصول على بريد فارغ $ AttachFiles = المسار إلى اسم الملف يذهب هنا؛ الملف الذي تريد إرفاقه - اتركه فارغًا إذا لم تكن هناك حاجة إليه $ CcAddress = [email protected]؛ عنوان cc - اتركه فارغًا إذا لم يكن مطلوبًا $ BccAddress = [email protected]؛ عنوان ”نسخة مخفية الوجهة” - اتركه فارغًا إذا لم تكن هناك حاجة إليه $ الأهمية = عادي؛ إرسال أولوية الرسالة: مرتفع ، عادي ، منخفض $ اسم المستخدم = *********؛ اسم المستخدم للحساب المستخدم من حيث يتم إرسال البريد - مطلوب $ Password = **********؛ كلمة المرور للحساب المستخدم من حيث يتم إرسال البريد - مطلوب $ IPPort = 25؛ المنفذ المستخدم لإرسال البريد $ ssl = 0؛ تمكنيعطل إرسال طبقة المقابس الآمنة - ضعها إلى 1 إذا كنت تستخدم httpS ؛ ~ $ IPPort = 465؛ منفذ GMAIL المستخدم لإرسال البريد ؛ ~ $ ssl = 1؛ يعطِّل GMAILenablesيعطِّل طبقة مأخذ توصيل آمنة - يتم وضعه في 1 إذا كان يستخدم httpS ؛ ##################################؛ Script ؛ ################################ Global $ oMyRet # 91 ؛ 2 # 93؛ Global $ oMyError = ObjEvent (AutoIt.Error، MyErrFunc) $ rc = _INetSmtpMailCom ($ SmtpServer، $ FromName، $ FromAddress، $ ToAddress، $ Subject، $ Body، $ AttachFiles، $ CcAddress، $ BccAddress، $ Importance، $ Username، $ Password، $ IPPort، $ ssl) Iferror Then MsgBox (0، Error sending message، Error code:error Description: $ rc) EndIf؛ . UDF Func _INetSmtpMailCom ($ s_SmtpServer، $ s_FromName، $ s_FromAddress، $ s_ToAddress، $ s_Subject =، $ as_Body =، $ s_AttachFiles =، $ s_CcAddress =، $ s_BccAddress =، $ s_Importance = عادي، $ s_Username =، $ s_Password =، $ IPPort = 25، $ ssl = 0) Local $ objEmail = ObjCreate (CDO.Message) $ objEmail.From = '' $ s_FromName 'lt؛' $ s_FromAddress 'gt؛' $ objEmail.To = $ s_ToAddress Local $ i_Error = 0 Local $ i_Error_desciption = If $ s_CcAddress lt؛ gt؛ ثم $ objEmail.Cc = $ s_CcAddress إذا $ s_BccAddress lt؛ gt؛ ثم $ objEmail.Bcc = $ s_BccAddress $ objEmail.Subject = $ s_Subject إذا StringInStr ($ as_Body، lt؛) و StringInStr ($ as_Body، gt؛) ثم $ objEmail.HTMLBody = $ as_Body Else $ objEmail.Textbody = $ as_Body @ CRLF EndIf If $ s_AttachFiles lt؛ gt؛ ثم Local $ S_Files2Attach = StringSplit ($ s_AttachFiles،؛) للحصول على $ x = 1 إلى $ S_Files2Attach # 91؛ 0 # 93؛ $ S_Files2Attach # 91؛ $ س # 93؛ = _PathFull ($ S_Files2Attach # 91؛ $ x # 93؛) ConsoleWrite ('Debug (62): $ S_Files2Attach =' $ S_Files2AttachLF 'gt؛ رمز الخطأ:' @ AdminLF) ؛ ### Debug Console إذا كان FileExists ($ S_Files2Attach # 91؛ $ x # 93؛) ثم $ objEmail.AddAttachment ($ S_Files2Attach # 91؛ $ x # 93؛) Else ConsoleWrite ('! gt؛ لم يتم العثور على الملف المرفق:' $ S_Files2Attach # 91؛ $ x # 93؛LF) SetError (1) إرجاع 0 EndIf التالي
1 المرفق (المرفقات) التقدم هذا هو برنامج نصي مفيد مهما كانت المناسبة. 3 ملفات في أرشيف MT4-AlertMailer.au3 - برنامج AutoIT النصي MT4-AlertMailer.exe - الملف التنفيذي المترجم من Alert_Mailer.INI الموضح أعلاه - ملف INI يسمح للمستخدم بإدخال البريد الإلكتروني الخاص به وتفاصيل FROM - إلى حد كبير سهل جدا يعمل لي (باستخدام ملقم SMTP ISP الخاص بي) الخطوات التالية لتحرير البرنامج النصي Alerter للعثور على طريقة فريدة جيدة لتسمية الملفات (ربما باستخدام PAIR و Datetimestamp أو شيء). كدنا نصل.
https://www.forexdrop.com/attachment...1506271096.zip
لمعرف فريد أنا أفكر في هذا النهج. سأحصل على وظيفة قطة الشاشة لاستدعاء ملف صورة شيء ذي مغزى ، ولكن مع بادئة مثل: TOSEND_EUM15-03022013.png. داخل البرنامج النصي البريدي سوف أحصل على إرسال TOSEND * .png بحيث يلتقط أي شيء في الدليل مع بادئة TOSEND ثم بعد ذلك مباشرة ، إعادة تسمية الملف إلى SENT_EUM15-03022013.png ، وهذا يعني أنه لن يحصل التقطت عدة مرات (جيد ، ليس أكثر من عدد المخططات مع نفس التنبيه الذي حددته). هل لدى إطارات مخططات MT4 معرّفًا فريدًا يمكن استخدامه لإلحاق اسم ملف - وهذا من شأنه أن يساعد أكثر في عامل التفرد
الآن ، أدرك أن استخدام الطقم الزمني بالإضافة إلى الجمع بين الأزواج فريد من نوعه بما يكفي. في حالتك ، يجب أن يكون تنبيهك للزوج كافياً ولا يهم إذا تم التقاط كلا المخططين. فكرة واجهة المستخدم الرسومية للملف INI جيدة. لا أحب فكرة استخدام ”التسجيل” باستثناء ما هو مخصص له ، ولكنني أعتقد أنه يعمل. يبدو أنك تحقق تقدمًا حقيقيًا.