كيف شكل سلسلة في البريد الإلكتروني Outlook سوف طباعة خط فواصل ؟

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

سؤال

أحاول إرسال بريد إلكتروني في جافا ولكن عندما قرأت الجسم من البريد الإلكتروني في Outlook ، انها تخلصت من كل linebreaks.أنا أضع في نهايات خطوط ولكن هل هناك شيء خاص يجب أن أفعل غير ذلك ؟ أجهزة الاستقبال تسير دائما إلى استخدام Outlook.

وجدت صفحة على microsoft.com أن يقول أن هناك 'إزالة فواصل الأسطر "الميزة" في Outlook فهل هذا يعني لا يوجد حل للالتفاف على أن غيرها من الأمم المتحدة التحقق من هذا الإعداد ؟

شكرا

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

المحلول

تحتاج إلى استخدام \r\n كما حل.

نصائح أخرى

لقد كنت القتال مع هذا اليوم.دعونا ندعو سلوك إزالة إضافية فواصل الأسطر "استمرار." تجريب قليلا يجد السلوك التالي:

  • كل رسالة يبدأ مع استمرار قبالة.
  • خطوط أقل من 40 حرفا لا تؤدي إلى استمرار ، ولكن إذا كان استمرار ، سيكون لديهم خط فواصل إزالتها.
  • خطوط 40 حرفا أو أكثر بدوره على استمرار.فإنه لا يزال حتى حدوث حدث لإيقاف تشغيله.
  • الخطوط التي تنتهي مع فترة علامة استفهام وتعجب أو القولون بدوره استمرار قبالة.(Outlook يفترض انها نهاية الجملة؟)
  • الخطوط التي تتحول استمرار قبالة سوف تبدأ مع كسر خط, ولكن سوف تتحول استمرار مرة أخرى إذا كانوا أطول من 40 حرف.
  • الأسطر التي تبدأ أو تنتهي مع علامة التبويب تشغيل استمرار قبالة.
  • الخطوط التي تبدأ مع 2 أو أكثر الأماكن بدوره استمرار قبالة.
  • الخطوط التي تنتهي مع 3 أو أكثر الأماكن بدوره استمرار قبالة.

يرجى ملاحظة أن حاولت كل هذا مع برنامج Outlook 2007.YMMV.
حتى إذا كان ذلك ممكنا ، في نهاية كل رصاصة البنود مع الجملة-إنهاء الترقيم علامة التبويب ، أو حتى ثلاثة أماكن.

يمكنك قوة خط فاصل في outlook عند إرفاق واحد (أو اثنين؟) علامة التبويب حرف (t) قبل كسر خط (CRLF).

على سبيل المثال:

This is my heading in the mail\t\n
Just here Outlook is forced to begin a new line.

يبدو أن العمل على برنامج Outlook 2010.يرجى اختبار ما إذا كان هذا يعمل على إصدارات أخرى.

انظر أيضا توقعات autocleaning خط بلدي فواصل تعبث تنسيق البريد الإلكتروني

Microsoft Outlook 2002 وفوق يزيل "إضافية فواصل الأسطر" من الرسائل النصية بشكل افتراضي (kb308319).هذا هو, توقعات يبدو ببساطة تجاهل خط تغذية و/أو إرجاع تسلسل في الرسائل النصية تشغيل جميع خطوط معا.

هذا يمكن أن يسبب مشاكل إذا كنت تحاول كتابة التعليمات البرمجية التي سيتم تلقائيا إنشاء رسالة بريد إلكتروني للقراءة من قبل أي شخص باستخدام Outlook.

على سبيل المثال, افترض أنك تريد لتوريد قطع منفصلة من المعلومات كل على أسطر منفصلة من أجل الوضوح ، مثل هذا:

الصفقة يحتاج إلى عناية!
PostedDate:1/30/2009
المبلغ:$12,222.06
TransID:8gk288g229g2kg89
الرمز البريدي:91543

Outlook الخاص بك المتلقي سوف ترى معلومات جميع حطم معا على النحو التالي:

الصفقة يحتاج إلى عناية!PostedDate:1/30/2009 المبلغ:$12,222.06 TransID:8gk288g229g2kg89 الرمز البريدي:91543

هناك لا يبدو أن يكون حلا سهلا.البدائل:

  1. يمكنك توفير اثنين مجموعات من خط فواصل بين كل سطر.التي لا تتوقف Outlook من الجمع بين الخطوط على خط واحد ، ولكن ذلك ثم يعرض إضافية سطر فارغ بين كل سطر (خلق مشكلة المعاكس).من خلال "العرض مجموعتين من فواصل الأسطر" أعني يجب عليك استخدام " " أو " " أو " " ولكن ليس " " أو " ".
  2. يمكنك توفير المساحات اثنين في بداية كل سطر في نص رسالة البريد الإلكتروني.أن يتجنب إدخال إضافية سطر فارغ بين كل سطر.ولكن هذا يعمل بشكل أفضل إذا كان كل سطر في رسالة قصيرة إلى حد ما, لأن المستخدم قد تكون معاينة النص في ضيق جدا Outlook النافذة التي يلتف نهاية كل سطر في جميع أنحاء المركز الأول في السطر التالي, حيث أنه لن يصطف مع اثنين من الفضاء-بادئة خطوط.وقد استخدمت هذه الاستراتيجية لبعض الإخبارية.
  3. يمكنك التخلي عن استخدام تنسيق نص عادي و استخدام تنسيق html.

كان عندي نفس المشكلة ووجدت الحل.جرب هذا: %0D%0A لإضافة خط فاصل.

لقد استخدمت html "كسر خط" بدلا من " " .عملت غرامة.

مضيفا " " ( TAB) بدلا من " " عملت بالنسبة لي في Outlook 2010 .ملاحظة :إضافة 3 مساحات في نهاية كل سطر أيضا أن تفعل نفس الشيء ولكن هذا يبدو وكأنه برمجة هاك!

تحتاج إلى إرسال رسائل البريد الإلكتروني HTML.مع <br />s في البريد الإلكتروني, سوف دائما يكون لديك فواصل الأسطر.

لقد كان يكافح مع جميع الحلول المذكورة أعلاه و لا شيء ساعد هنا لأنني استخدمت متغير سلسلة (نص عادي من JTextPane) في تركيبة مع "text/html" التنسيق في بلدي البريد الإلكتروني المكتبة.

لذا الحل لهذه المشكلة هو استخدام "نص/عادي" بدلا من "text/html" و لا تحتاج إلى استبدال عودة الشخصيات على الإطلاق:

MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(message, "text/plain");

وضع النص في <pre> العلامات توقعات تنسيق و عرض النص بشكل صحيح.

أنا تعريفه في CSS مضمنة في HTML الجسم مثل:

CSS:

pre {
 font-family: Verdana, Geneva, sans-serif;
}

لقد عرف font-family أن مجموعة الخطوط.

HTML:

<td width="70%"><pre>Entry Date/Time:       2013-09-19 17:06:25
Entered By:     Chris

worklog mania

____________________________________________________________________________________________________

Entry Date/Time:        2013-09-19 17:05:42
Entered By:     Chris

this is a new Worklog Entry</pre></td>

لأنه هو الاستعلام فقط في المئة هرب شخصيات العمل ، وسائل %0A يعطيك كسر خط.على سبيل المثال ،

&lt;a href=&quot;mailto:someone@gmail.com?Subject=TEST&amp;amp;body=Hi there,%0A%0AHow are you?%0A%0AThanks&quot;&gt;email to me&lt;/a&gt;

الخدعة هو استخدام encodeURIComponent() وظائف من js:

var formattedBody = "FirstLine \n Second Line \n Third Line";
var mailToLink = "mailto:x@y.com?body=" + encodeURIComponent(formattedBody);

النتيجة:

FirstLine
SecondLine
ThirdLine

ل Outlook 2010 والإصدارات الأحدث, استخدام بدلا من استخدام .

لن تعمل حتى تقوم بتعيين نوع الجسم كما نص.

message.setBody(MessageBody.getMessageBodyFromText(msg));
BodyType type = BodyType.Text;
message.getBody().setBodyType(type);

حل في طلبي

في طلبي, كنت أحاول إرسال رسالة البريد الإلكتروني التي نص الرسالة تمت كتابتها من قبل المستخدم في منطقة النص.عندما كان بريد إرسال outlook تلقائيا إزالة كسر خط إدخالها من قبل المستخدم.

هـ.ز إذا دخل المستخدم
ياداف
ماهيش

توقعات عرضها على أنها
YadavMahesh

القرار: لقد غيرت خط كسر حرف " " مع "\par " ( تذكر لتصل إلى الفضاء في نهاية RTF الرمز "\par" )و فواصل الأسطر restrored.

الهتافات ،
ماهيش

إذا كنت يمكن أن تضيف في '.' (نقطة) حرف في نهاية كل سطر ، هذا يبدو لمنع Outlook تخريب تنسيق النص.

جرب هذا:

message.setContent(new String(body.getBytes(), "iso-8859-1"),
                    "text/html; charset=\"iso-8859-1\"");

التحيات ، محمد رسول Javeed

محاولة \r\c بدلا من \n.

تحرير: أعتقد @روبرت ويلكنسون كان محقا. \r\n.الذاكرة ليست ما كانت عليه.

على \n إلى حد كبير يعمل في الولايات المتحدة لكن التوقعات لا تأخذ في بعض الأحيان على عاتقها إزالة فواصل الأسطر كما تقول.

لدي حل جيد أنني حاولت ذلك ، هو فقط إضافة شار(13) في نهاية السطر مثل المثال التالي:

Dim S As String
 S = "Some Text" & Chr(13)
 S = S + "Some Text" & Chr(13)

إذا كانت الرسالة نص/عادي باستخدام يجب العمل ؛ إذا كان نوع الرسالة النصية\html, استخدام < p/>

هذا يجب أن تكون مفيدة بالنسبة لك.حاول "%0A" بدلا من " ".المصدر الحقيقي هو هنا

تحتاج إلى إضافة "%0A" من أي وقت مضى حيث كنت بحاجة إلى خط جديد في التعليمات البرمجية الخاصة بك.في حالتك

 abcParameters.put(defConstants.REPORT_MESSAGE, "Invalid file sent by tt. Hence ffgghh  was unable
              to process it : " + s+ "%0A" +e.getMessage().toString());

كما أتيحت لي هذه المشكلة مع عادي/نص البريد النوع.في وقت سابق, كنت " " ولكن كان هناك اثنين من فواصل الأسطر.ثم استخدمت " " وعملت.كنت تستخدم StringBuffer في جاوة إلى إلحاق المحتوى.
المحتوى حصلت المطبوعة في السطر التالي في Outlook 2010 البريد.

كما أتيحت لي هذه المشكلة مع عادي/نص البريد النوع.شكل تغذية \f عملت بالنسبة لي.

في بعض الأحيان لديك لإدخال مرتين إلى قوة outlook للقيام كسر.

هذا إضافة سطر فارغ ولكن كل الخطوط سوف كسر.

إذا كان العمل تحتاج إلى القيام به مع تنسيق النص مع ترميز html.يمكن أن يكون من السهل تحقيق هذا السيناريو التالي يخلق عنصر div على الطاير واستخدام <pre></pre> عنصر html للحفاظ على التنسيق.

var email_body = htmlEncode($("#Body").val());

 function htmlEncode(value) {
    return "<pre>" + $('<div/>').text(value).html() + "</pre>";
}

ليس متأكدا مما إذا كان ذكر أعلاه ولكن Outlook مربع الإعداد تسمى "إزالة خط إضافي فواصل في رسائل النص العادي" و هو افتراضي.وهي تقع في بقعة مختلفة للحصول على إصدارات مختلفة من Outlook ولكن في عام 2010 انتقل إلى "ملف" علامة التبويب.اختر "خيارات => البريد" انتقل لأسفل إلى "تنسيق الرسالة" قم بإلغاء تحديد خانة الاختيار.

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