"مهلة البيانات الواردة SMTP" عند إرسال بريد إلكتروني مع الصور المضمنة باستخدام Indy 10 في نظام التشغيل Windows XP

StackOverflow https://stackoverflow.com/questions/752822

سؤال

أحصل على الخطأ "مهلة البيانات الواردة SMTP" عندما أحاول إرسال بريد إلكتروني مع الصور المضمنة في نظام التشغيل Windows XP، فأنا أستخدم فرع Tiburon من Indy 10 مع التعليمات البرمجية التالية لإرسال رسائل البريد الإلكتروني مع الصور المضمنة:

   MB := TIdMessageBuilderHtml.Create;
    try
      MB.PlainText.Assign(Text);
      MB.Html.Assign(FHTML);
      MB.HtmlFiles.Add('c:\Path\to\My\Image.jpg');
      MB.FillMessage(IdMessage);
    finally
      MB.Free;
    end;


  if not IdSMTP.Connected then
    IdSMTP.Connect;
  IdSMTP.Send(IdMessage);

يحدث فقط في نظام التشغيل Windows XP، في نظام التشغيل Windows Vista البريد الإلكتروني والصورة المضمنة بشكل جيد.

يبدو أنه لا يرسل أي شيء إلى الخادم، ويبدو أنه عالق لتشكيل الصورة قبل الإرسال.

هنا هي مكدس المكالمات:

 IdReplySMTP        497   +1 TIdReplySMTP.RaiseReplyError
 IdTCPConnection    574   +1 TIdTCPConnection.RaiseExceptionForLastCmdResult
 IdTCPConnection    724  +10 TIdTCPConnection.CheckResponse
 IdTCPConnection    563   +2 TIdTCPConnection.GetResponse
 IdTCPConnection    583   +4 TIdTCPConnection.SendCmd
 IdTCPConnection    696   +4 TIdTCPConnection.SendCmd
 IdSMTP             377   +2 TIdSMTP.DisconnectNotifyPeer
 IdTCPConnection    517   +5 TIdTCPConnection.Disconnect
 IdSMTP             476   +2 TIdSMTP.Disconnect
 IdTCPConnection    828   +2 TIdTCPConnection.Disconnect
 Email              130  +11 TEmail.Destroy
 System            9806   +1 TObject.Free
 EnviarEmail        322  +38 TFormEnviarEmail.Enviar
 System           12106  +38 @HandleFinally
                             RtlUnwind
 System           11589  +83 @HandleAnyException
                             KiUserExceptionDispatcher
                             RtlAppendUnicodeToString
 IdMessageClient    873   +4 EncodeAttachment
 IdMessageClient   1213 +252 TIdMessageClient.SendBody
 IdMessageClient   1244 +283 TIdMessageClient.SendBody
 IdMessageClient   1269  +12 TIdMessageClient.SendMsg
 IdSMTPBase         251   +6 TIdSMTPBase.SendNoPipelining
 IdSMTPBase         436   +4 TIdSMTPBase.InternalSend
 IdSMTPBase         457   +1 TIdSMTPBase.Send
 IdSMTP             415   +6 TIdSMTP.Send
 IdSMTPBase         449   +6 TIdSMTPBase.Send

أي أدلة حول ما يسبب ذلك وكيف يمكنني حل المشكلة؟

شكرا.

هل كانت مفيدة؟

المحلول 3

تم حل المشكلة.

أقوم بتحليل ملف HTML لتحميل الصور وإرفاقها في البريد الإلكتروني، ولكن في Windows XP المسار هو:

C:\Documents And Settings\User\Desktop\....

وفي ملف HTML هذا المسار كان

C:\Documents%20And%20Settings\User\Desktop\....

لذلك لم يتم العثور على ملف استثناء تم رفعه داخليا وإيقاف العملية، حتى المهلة، ولم يكن إندي رفعه.

بعد إرفاق مصحح الأخطاء عن بعد في العملية التي تعمل على جهاز Windows XP، حصلت على الاستثناء في المحاولة الأولى.

لا أعتقد أن صحيحا ل Indy "Engulf" الاستثناء، لكن هذا تاريخ آخر.

نصائح أخرى

هل أكدت أنه يمكنك إرسال نفس البريد مع عميل بريد فيد Bona Bona، ويفضل أنه واحد بسيط ومحمول لا يدمج في أحشاء النظام، مثل عميل البريد المزمن أو الأوبرا المضمن؟ يمكن أن يكون هناك نظام مكافحة الفيروسات / مكافحة الفيروسات / مكافحة أي نظام يتداخل هناك - العديد من أولئك الذين اعترضوا بشفافية من 25 / TCP المنتهية ولايته والقيام بالبيانات.

إذا لم يكن الترميز هو السبب في ذلك، ولكن وقت قراءته، فيمكنك زيادة استخدامه باستخدام خاصية ReadTimeout:

IDSMTP1.ReadTimeout: = 20000؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top