আউটলুক আমার লাইনটি অটোক্লিন করে এবং আমার ইমেল ফর্ম্যাটটিকে সরিয়ে দেয়


119

আমি ডটনেট ফ্রেমওয়ার্ক ব্যবহার করে একটি ইমেল প্রেরণ করছি। এই বার্তাটি তৈরি করতে আমি যে টেম্পলেটটি ব্যবহার করছি তা এখানে:

Date of Hire: %HireDate%
Annual Salary: %AnnualIncome%
Reason for Request: %ReasonForRequest%

Name of Voluntary Employee: %FirstName% %LastName%
Total Coverage Applied For:  %EECoverageAmount%
Guaranteed Coverage Portion: %GICoveragePortion%
Amount Subject to Medical Evident: %GIOverage%

বার্তাগুলি আউটলুক এ প্রাপ্ত হলে আউটলুক আমাকে বলে "এই বার্তায় অতিরিক্ত লাইন ব্রেকগুলি সরানো হয়েছিল"। এবং বার্তাটি এর মতো প্রদর্শিত হয়:

Date of Hire: 9/28/2001
Annual Salary: $100,000
Reason for Request: New Hire

Name of Voluntary Employee: Ronald Weasley Total Coverage Applied For:  $500,000 Guaranteed Coverage Portion: $300,000.00 Amount Subject to Medical Evident: $200,000

নোট, EECoverageAmount, ইত্যাদির পরে আউটলুক কীভাবে ভুলভাবে প্রয়োজনীয় লাইন ব্রেকগুলি সরিয়ে দেয় তা নোট করুন ...

ইমেল গ্রহণকারীদের জন্য সঠিকভাবে ফর্ম্যাটেড ইমেল পাওয়া গুরুত্বপূর্ণ এবং আমি ধরে নিতে পারি যে তাদের মধ্যে কিছু লোক 2003 এর দৃষ্টিভঙ্গি ব্যবহার করেছে I আমি এও ধরে নিতে পারি না যে তারা বার্তাটি সঠিকভাবে ফর্ম্যাট করার জন্য অটোক্লিন বৈশিষ্ট্যটি বন্ধ করতে যথেষ্ট জানবে will

আমি এই বার্তাগুলি অন্য মেল ক্লায়েন্টগুলিতে দেখেছি এবং সেগুলি সঠিকভাবে প্রদর্শন করে

আরও কিছু তথ্য:

  • আমি ইউটিএফ -8 বডিইনকোডিং ব্যবহার করছি (msg.BodyEncoding = System.Text.Encoding.UTF8)
  • URL.Body একটি UTF-8 এনকোডযুক্ত পাঠ্য ফাইল থেকে পড়া হচ্ছে এবং প্রতিটি লাইন একটি crlf দিয়ে সমাপ্ত করা হয়।

প্রশ্ন: এই সমস্যাটি এড়াতে আমি কীভাবে বার্তার বিন্যাসটি পরিবর্তন করব?


12
নীচে উভয় উচ্চ আপত্তিকৃত উত্তর সঠিক হলেও , সমস্ত বিধিগুলির তালিকার জন্য এই উত্তরটি দেখুন ।
ববসন


5
কেন এই "বৈশিষ্ট্য" এমনকি বিদ্যমান?
চিলনিট

1
উইন্ডোজ নতুন লাইন চেষ্টা করুন: \r\n। এটা আমার জন্য কাজ করেছে।
কেভিনার্পে

উত্তর:


97

2 টি স্পেস দিয়ে প্রতিটি লাইন শুরু করুন এবং আপনার ফর্ম্যাটিংটি রাখার ক্ষেত্রে দৃষ্টিভঙ্গি "ছলনা" হবে।

সুতরাং পরিবর্তন

Date of Hire: %HireDate%
Annual Salary: %AnnualIncome%
Reason for Request: %ReasonForRequest%

Name of Voluntary Employee: %FirstName% %LastName%
Total Coverage Applied For:  %EECoverageAmount%
Guaranteed Coverage Portion: %GICoveragePortion%
Amount Subject to Medical Evident: %GIOverage%

প্রতি

  Date of Hire: %HireDate%
  Annual Salary: %AnnualIncome%
  Reason for Request: %ReasonForRequest%

  Name of Voluntary Employee: %FirstName% %LastName%
  Total Coverage Applied For:  %EECoverageAmount%
  Guaranteed Coverage Portion: %GICoveragePortion%
  Amount Subject to Medical Evident: %GIOverage%
^^ <--- Two extra spaces at the start of every line

এই সমস্যাটি নিয়ে গবেষণা করার সময় আমি যে নিবন্ধটি পেয়েছি তা এখানে যা আমার উত্তরের চেয়ে কিছুটা গভীরতায় যায়।


6
এটি বাছাই করার জন্য একটি সুবিধাজনক রেইগেক্স এখানে রয়েছে:Regex.Replace(messageBody, @"^(?!\s\s)", " ", RegexOptions.Multiline);
উইলফ্রেড নাইভেল

2
ঠিক আছে, এই রেইজেক্সে দুটি স্পেস রয়েছে তবে এটি এইচটিএমএল হওয়ায় এটি কেবল একটি প্রদর্শন করছে!
উইলফ্রেড নাইভেল

কোড উত্পন্ন পাঠ্য ইমেলগুলির জন্য এটি সর্বোত্তম সমাধান।
সালভাদোর ভ্যালেন্সিয়া

129

আপনি লাইনের শেষে একটি ট্যাব অক্ষর সন্নিবেশ করতে পারেন (সিআর এলএফের ঠিক আগে)। এই অতিরিক্ত সাদা স্থানটি লাইনের শেষে থাকবে এবং তাই ব্যবহারকারীর কাছে দৃশ্যমান নয়। আপনি বাম দিকে ফাঁকা স্থান সন্নিবেশ করায় পছন্দ করতে পারেন। মনে রাখবেন যে একটি একক স্থানই যথেষ্ট নয় (যদিও একাধিক স্পেস সাহায্য করবে, আমি জানি না))


14
Regex.Replace(messageBody, @"(?<!\t)((?<!\r)(?=\n)|(?=\r\n))", "\t", RegexOptions.Multiline)
উইলফ্রেড নাইভেল

ট্র্যাক থেকে আউটলুক ব্যবহারকারীদের কাছে ইমেল প্রেরণের নিখুঁত সমাধান।
sfarbota

1
+1 আমাকে একটি ট্যাবটির পরিবর্তে 3 টি স্পেস ব্যবহার করতে হয়েছিল, তবে মূলত এই ফিক্সটি আমার পক্ষে কাজ করেছে: রেজেজ্স Rপ্লেস (মেসেজবিডি, @ "(? <! \ T) ((? <! \ R) (? = \ N) | (?? \ r \ n)) "," ", রিজেক্সঅপশনস। মাল্টলাইন)
রায়ান ভ্যান্ডেনহিউভেল

নিশ্চিত! এখানে পিএইচপি স্নিপেট হিসাবে রেজেক্স: $ রে = '/ (? <! \ T) ((??!! <R) (? = \ N) | (? = = R \ n)) / এম'; $ subst = ""; $ মেলটেক্সট = প্রিগ_রেপ্লেস ($ পুনরায়, $ উপকরণ, $ মেলটেক্সট);
C4pt4inC4nn4bis

আউটলুকের জন্য কাজ করে তবে স্যামসং মেল ক্লায়েন্ট এফ পি স্মার্টফোনে পাঠ্য মেলগুলি ভেঙে দেয় :(
C4pt4inC4nn4bis

26

এই উত্তরটি কীভাবে আউটলুক ক্লায়েন্ট থেকে বৈশিষ্ট্যটি "অক্ষম" করা যায় on

  • সরঞ্জামগুলিতে যান -> "বিকল্পগুলি ..."
  • "পছন্দসমূহ" ট্যাবে "ইমেল বিকল্পগুলি ..." ক্লিক করুন
  • "সরল পাঠ্য বার্তায় অতিরিক্ত লাইন বিরতি সরান" বাক্সটি আনচেক করুন।
  • ঠিক আছে আঘাত

এফওয়াইআই: আমি আউটলুক 2007 ব্যবহার করছি


3
আমি এই বৈশিষ্ট্যটিও পছন্দ করি না। অন্যান্য জিনিসের মধ্যে এটি ইমেলের কোডগুলি ভেঙে দেয় এবং পিজিপি স্বাক্ষর চেক ব্যর্থ হয়।
ব্রায়ান রিটার

7
এবং আউটলুক 2010 এ এটি: ফাইল> বিকল্পগুলি> মেল> "বার্তা বিন্যাস" বিভাগে স্ক্রোল করুন> "সরল পাঠ্য বার্তায় অতিরিক্ত লাইন বিরতি সরান" বাক্সটি আনটিক করুন।
পিটার ফোর্ড

2
এটি ক্লায়েন্ট-সাইড সলিউশন। আউটলুককে সার্ভারের পক্ষ থেকে এটি করা থেকে বিরত রাখা একটি নির্ভরযোগ্য পদ্ধতি হতে পারে, যেমন মেলটি এমনভাবে ফর্ম্যাট করে যাতে অন্য ক্লায়েন্টদের বিরক্ত না করে (কারণ আপনি জানেন না যে কোন মেল ক্লায়েন্টটি রিসিভারটি ব্যবহার করবে)।
টোবিয়াস

7
ধন্যবাদ - এবং এখন এটি করতে আমাদের 100.000+ নিউজলেটার রিসিভারকে গাইড করুন
মুলেসকিনার

4

আমি সবসময় এইচটিএমএল হিসাবে ভাগ্যবান ইমেলগুলি আরও ভালভাবে পেয়েছি। এইচটিএমএল ফর্ম্যাটটি মঞ্জুরি দেওয়ার জন্য ক্লায়েন্টটি সেট করার বিষয়ে আপনার শেষে ব্যবহারকারীটির সমস্যা থাকতে পারে তবে এতগুলি ই-মেইল এইচটিএমএল ফর্ম্যাট করার কারণে তারা সাধারণত এটির সাথে বেশি পরিচিত। এইচটিএমএল ট্যাগ যুক্ত করে আপনার প্রান্তে আরও কিছু কাজ রয়েছে তবে শেষের ফলাফলটি আরও অনেক বেশি নিয়ন্ত্রণযোগ্য।

@ প্রফিয়েন্ট আরও পরামর্শ দেয়: এইচটিএমএল এবং প্লেইন টেক্সট উভয় হিসাবে প্রেরণ করুন। ভাল ক্লায়েন্টরা উত্তরোত্তরটি প্রদর্শন করবে, আউটলুক প্রাক্তনটিকে দেখায়, সকলেই খুশি (প্রোগ্রামার যাকে আরও কাজ করতে হবে তা বাদে)।


2
এইচটিএমএল এবং প্লেইন টেক্সট উভয় হিসাবে প্রেরণ করুন। ভাল ক্লায়েন্টরা উত্তরোত্তরটি প্রদর্শন করবে, আউটলুক প্রাক্তনটিকে দেখায়, সকলেই খুশি (প্রোগ্রামার যাকে আরও কাজ করতে হবে তা বাদে)।
পূর্বসূরী

আপনার উত্তরে বিটিডাব্লু, এস / এইচটিএমএল / এইচটিএমএল / জি।
পূর্বসূরী

4

"\ R \ n" এর পরিবর্তে "\ t \ r \ n" (AB t ট্যাবের জন্য) যুক্ত করা আমার জন্য কাজ করেছেন আউটলুক 2010 এ worked


"\r\n "অনুরূপ হ্যাক হিসাবে নিউলাইনের পরে আমি (দুটি স্পেস, কোনও ট্যাব নেই) ব্যবহার করে এটি "সমাধান" করেছি । ওয়ার্ক ইন আউটলুক 2016. ওয়াইএমএমভি।
ব্যবহারকারী 2864740

1

ডগ এল উত্তরের সম্প্রসারণ , যেহেতু আমি মনে করি যে এইচটিএমএল বার্তাবাহিনী ২০০৮ সালের তুলনায় আরও বেশি সর্বব্যাপী এবং গৃহীত হয়েছে যখন উত্তরটি পোস্ট করা হয়েছিল। শরীরকে রূপান্তর করতে এবং এইচটিএমএল ফর্ম্যাটে বার্তাটি প্রেরণে সহায়তা করতে এখানে একটি ছোট সি # স্নিপেট রয়েছে:

body = string.Format("<font face='calibri,arial,sans-serif'>{0}<font/>", body.Replace("\r\n", "<br>"));

using (var smtpClient = new SmtpClient() { Host = smtpHost })
using (var msg = new MailMessage(from, emailDistribution, subject, body) { IsBodyHtml = true })
     smtpClient.Send(msg);

0

প্লেইন-পাঠ্য ইমেল তৈরি করার পরে এবং আউটলুক 2003 এসপি 3 দিয়ে এটি পড়ার সময় আমি একই সমস্যাটি দেখছি। এটি প্রদর্শিত হয় আপনি 40 অক্ষরের নীচে লাইনের দৈর্ঘ্য রেখে এর দ্বারা অপসারণের প্রক্রিয়াটি এড়াতে পারবেন। সর্বদা ব্যবহারিক নাও হতে পারে।


0

পাঠ্যটিকে <pre>ট্যাগগুলিতে রাখুন এবং আউটলুকটি সঠিকভাবে ফর্ম্যাট করবে এবং প্রদর্শন করবে।

আমি এটি এইচটিএমএল বডিতে সিএসএস ইনলাইনটিতে সংজ্ঞায়িত করেছি:

সিএসএস:

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

আমি ফন্ট-পরিবারকে ফন্ট সেট করতে সংজ্ঞায়িত করেছি।

এইচটিএমএল:

<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>

1
আমি বিশ্বাস করি যে মূল প্রশ্নটি এইচটিএমএল নয়, প্লেটেক্সট ইমেলগুলিকে বোঝায়। আপনি সমাধান হিসাবে এইচটিএমএল মিশ্রিত করার চেষ্টা করছেন।
ক্রিস পিটার্স

0

অটো সাফাই একটি আউটলুক বৈশিষ্ট্য যা অতিরিক্ত লাইন ব্রেকগুলি সরিয়ে দেয়। আপনি এটি দুটি উপায়ে প্রতিরোধ করতে পারেন।

  • প্রথম উপায় হ'ল কোডের মাধ্যমে ইমেল প্রেরণের সময় লাইনের আগে কমপক্ষে 2 টি অতিরিক্ত স্পেস যুক্ত করা। দৃষ্টিভঙ্গি স্বয়ংক্রিয়ভাবে সরানো হয় সেই লাইনের আগে আপনি এই অতিরিক্ত স্থানগুলি যুক্ত করতে পারেন।

  • দ্বিতীয় উপায় হ'ল আউটলুক সেটিং পরিবর্তন করা যা আউটলুককে অতিরিক্ত লাইন ব্রেকগুলি সরাতে বাধা দেয়।

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন


-1

আমার পাঠ্যটিতে '\ r \ n' অন্তর্ভুক্ত রয়েছে তবে আউটলুক 2010 লাইন বিরতি দেয় না। '\ R \ n' দিয়ে ডিলিমেট করা লাইনের টোকেন এবং এইচটিএমএল অনুচ্ছেদ ট্যাগ দ্বারা খাম টোকেনগুলি তৈরি করুন। আমার ইমেল ফর্ম্যাটটি এইচটিএমএল। আমি নীচের কোডটিতে আমার ইমেলের জন্য এইচটিএমএল বডি তৈরি করছি।

string[] tokens = Regex.Split(objTickt.Description, "\r\n");
  if (tokens.Length > 0)
  {
     foreach (string line in tokens)
     {
         //htmlTW.WriteEncodedText(objTickt.Description.Replace("\r\n", "\n\n"));
         htmlTW.RenderBeginTag(HtmlTextWriterTag.P);
         htmlTW.WriteEncodedText(line);
         htmlTW.RenderEndTag();
     }
  }

-6

আপনার লাইন টার্মিনেশনটি সিআরএলএফ থেকে cr বা lf এ পরিবর্তন করুন।

আমি সন্দেহ করি যে ইমেলের শীর্ষে কেবলমাত্র cr (বা lf) ব্যবহার করে এবং আউটলুক আশা করে যে বাকি ইমেলগুলি একই ফর্ম্যাটটি অনুসরণ করবে।


আমি লাইন টার্মিনেটরটি সিআর-তে পরিবর্তন করার চেষ্টা করেছি। কাজ হয়নি। তারপরে আমি এটিকে এলএফ-তে পরিবর্তন করার চেষ্টা করেছি। এটিও কাজ করেনি।
অহেহো

1
সন্দিহান। আউটলুকের একটি অত্যন্ত সন্দেহজনক বৈশিষ্ট্য রয়েছে যা হার্ডলাইন ব্রেক সহ মেলকে প্রবাহিত পাঠ্যে রূপান্তরিত করার চেষ্টা করে। আশ্চর্যজনকভাবে, এটি প্রায়শই এই ভুলটি ঘটায়, যেমনটি ঘটে থাকে।
ড্যানিয়েল ক্যাসিডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.