لماذا في بعض الظروف البريد الإلكتروني المرسلة مع idSMTP لا تذهب بشكل صحيح الجديدة الخط ؟
سؤال
أنا إرسال رسالة نصية فقط باستخدام البريد الإلكتروني TIdMessage
و TIdSMTP
.
عن Body
يمكنني استخدام بسيطة متسلسلة سلسلة مثل
Body := SomeText + #13#10 +
SomeOtherText + #13#10 +
SomeMoreText + #13#10 +
FinalText;
على أي حال في إنشاء البريد الإلكتروني بعض "#13#10
"لا تجاهل.لقد تسجيل Body
متغير و أرى أن النص يذهب إلى الخط الجديد ، على أي حال في البريد الإلكتروني هذا لا يحدث.الشيء الغريب هو أن لا يحدث في كل سطر ولكن فقط على بعض الخطوط.
هل لديك فكرة عن لماذا يحدث هذا ؟ يمكن أن تشير إلى شيء تحقق ؟ هناك بعض ممكن confict بين #13#10
و نص البريد الإلكتروني الجسم في بعض الظروف ؟
التحديث
بعد مزيد من التحقيق (شكرا على تعليقاتكم) أدركت أنها Outlook التصور المشكلة على أية حال المشكلة لا تزال غير واضحة بالنسبة لي.
هذا هو الجسم من البريد الإلكتروني فتح في NotePad++ (فتحت الملف msg حفظها من outlook) حيث تظهر أيضا فواصل الأسطر (يمكنك أن ترى #13#10 كما LF CR.أنا باللون الأحمر والأخضر 2 خط فواصل إشكالية في outlook (ولكن يمكنك أن ترى أن في NP++ أنها تبدو مثل باقي linebreaks):
البريد الإلكتروني في Outlook يبدو مثل هذا (يرجى ملاحظة أن التوقعات تقول أن الرسالة قد سطر إضافي فواصل أنهم hahve أزيلت ، لكنه يوفر خيار لاستعادة لهم:
بعد اختيار هذا الخيار البريد الإلكتروني هو موافق:
أنا لا أفهم لماذا يحدث هذا فقط على بعض فواصل الأسطر.هل هذا يساعد على فهم المشكلة بشكل أفضل ؟
المحلول
قد تتمكن من محاولة استخدام IdMessage.NoEncode := True
حيث أن الجسم لا يكون RCF 821 المشفرة.
أو أفضل استخدام الترميز الحديثة IdMessage.ContentType := 'text/html'
واستبدال #13#10
مع <br>
تحرير: هذا هو Outlook Express المسألة.
اسمع هنا و هنا.الحل سيكون إضافة 2 فارغة الشخصيات إلى بداية كل سطر من النص في النظام لجعل Outlook إزالة فواصل.
لاحظ أن Microsoft الدعم أيضا إلى استخدام تنسيق HTML ممكن الحل مع Outlook Express:
الأسلوب 2. استخدام HTML أو نص منسق يمكنك استخدام HTML أو نص منسق صيغ عند إنشاء عناصر جديدة.أو يمكنك تغيير الوظائف القائمة على هذه الأشكال.
نصائح أخرى
قد يكون عميل البريد الإلكتروني تجريد بعض فواصل الأسطر ، إذا ContentType هو نص عادي.