ইমেলগুলি পুনরায় এনকোড করুন এবং একটি নির্দিষ্ট মেলবক্সে স্বয়ংক্রিয়ভাবে ফরোয়ার্ড করুন


0

আমি একটি এক্সচেঞ্জ 2010 পরিবেশে কাজ করছি, এবং আমি নিম্নলিখিতটি করতে আগ্রহী:

  • একটি সার্ভার-সাইড নিয়ম থাকা যা একটি নির্দিষ্ট ঠিকানায় প্রেরিত সমস্ত ইমেল গ্রহণ করে এবং তাদের একটি নতুন ঠিকানায় ফরোয়ার্ড করে।
  • তবে ইমেলটি ফরোয়ার্ড করার আগে এটি একটি নির্দিষ্ট চারসেটের সাথে পুনরায় এনকোড করা দরকার। আমার ক্ষেত্রে, ইমেলটি ইউটিএফ -8 এনকোডিংয়ে পাওয়া যাচ্ছে এবং আমার এটি ইউএস-এএসসিআইআই হিসাবে পুনরায় এনকোড করা এবং তারপরে ফরোয়ার্ড করা দরকার।

সুতরাং "ফ্লোচার্ট" হবে:

  1. ইউটিএফ -8 ইমেলটি মেলবক্স-এ প্রেরণ করা হয়েছে
  2. মেলবক্স-এ ইউটিএফ -8 ইমেলটি গ্রহণ করে।
  3. মেলবক্স-এ সার্ভার-সাইড নিয়ম ইউএস-এএসসিআইতে ইমেলটিতে চারসেটটিকে পুনরায় এনকোড করে
  4. নতুন ইউএস-এএসসিআইআই এনকোডেড ইমেল মেইলবক্স-বিতে এগিয়ে রয়েছে

আমি বেশ কয়েকটি সম্ভাব্য সমাধান পেয়েছি: মেলবক্সের নিয়ম, পরিবহণের নিয়ম, জার্নাল অ্যাকাউন্ট ... তবে কোনওটিই আমার সমস্যার সাথে সাথে সমাধান করার বিষয়টি মনে হয় না। এটি হতে পারে যে আমি এটি যথেষ্ট তদন্ত করছি না।

এ সম্পর্কে যে কোনও সহায়তা প্রশংসিত হবে। ধন্যবাদ!


পার্শ্ব নোট: আপনি ইউটিএফ -8 ইউএস-এএসসিআইআইতে এনকোড করতে পারবেন না কারণ ইউটিএফ -8 সমস্ত ইউনিকোড এনকোড করতে পারে এবং ইউএস-এএসসিআই করতে পারে না। আপনার অনুপস্থিত অক্ষরগুলির কিছু পরিচালনা করতে হবে need
মার্টিজন

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

1
সেক্ষেত্রে ইউএসএড-এএসসিআইআই এনকোড করতে পারে এমন ইউনিকোডের সাবসেটটি ইউটিএফ -8 এবং ইউএস-এএসসিআইতে অভিন্নভাবে এনকোড করা হওয়ার পরে আপনাকে কিছু করতে হবে না।
ব্যবহারকারী 2313067

এটি কঠোরভাবে সত্য নয়। ইউটিএফ -8 এ একটি ইমেলের একটি content-transfer-encodingবেস 64 এবং একটি ইউএস-এএসসিআইআই ইমেলটি সাধারণত তার মাইমে 7 বিট (বা এটি ডিফল্ট হিসাবে বাদ দেওয়া হয়) থাকবে। যাই হোক না কেন, Content-typeইচ্ছা আলাদা হবে এবং এটি পরিবর্তন করা দরকার।
মার্টিজন

উত্তর:


0

এক্সচেঞ্জ স্বয়ংক্রিয়ভাবে কোনও ইমেল বার্তা ট্রান্সকোড করতে পারে না।

ভাগ্যক্রমে, পরিবহন এজেন্টগুলির সাথে, আপনি বিনিময় ছাড়াই জাহান্নামের স্ক্রিপ্ট করতে পারেন। দুর্ভাগ্যক্রমে, আপনার নিজের পক্ষে যুক্তিটি লিখতে হবে। এর মাধ্যমে যেতে দিন।

আপনি মূলত http://msdn.microsoft.com/en-us/library/office/aa579185%28v=exchg.140%29.aspx এ নির্দেশাবলী অনুসরণ করতে পারেন

আপনার ফ্লো চার্টে:

  1. আপনি ইতিমধ্যে এটি কভার করেছেন (ডান?)
  2. বিরতি। আমরা কখনই এটি করতে যাব না। ট্রান্সপোর্ট এজেন্ট লিখুন যা আমাদের পরিবর্তনের জন্য প্রয়োজনীয় সমস্ত কিছু পরিবর্তন করে। অনঅন্ডঅফডেটা ইভেন্টে এমন একটি প্রতিনিধি গ্রহণ করে যা একটি যুক্তি হিসাবে উপস্থিত থাকে যার মধ্যে MailItemআপনার প্রয়োজনীয় সমস্ত কিছু থাকে। MailItem.Message.Toআপনার মেইলবক্স-এ রয়েছে কিনা তা প্রথমে পরীক্ষা করুন । যদি এটি হয় তবে আপনার যে পরিবর্তন করতে হবে তা পরিবর্তন করুন:
    • MailItem.Message.To মাইবক্স-বি যুক্ত করুন (মাইলবক্স-এ অপসারণ করুন)
    • সঙ্গে পুরানো বডি মিম্পার্ট পান MailItem.Message.Body.MimePartMimePartকনস্ট্রাক্টর দিয়ে একটি নতুন তৈরি করুন

-

public MimePart(
  string contentType,
  ContentTransferEncoding transferEncoding,
  Stream contentStream,
  CachingMode cachingMode
)

আপনি প্রয়োজন হবে contentType "text/plain", ContentTransferEncodingপ্রাচীনকালের ContentTransferEncoding, একটি নতুন বিষয়বস্তু স্ট্রীম, এবংCachingMode CachingMode.Copy

নতুন অংশের সামগ্রী প্রবাহে অপরিবর্তিত পুরানো মাইমপার্টের সামগ্রীর লিখিত সামগ্রীগুলি লিখুন (যেহেতু আপনি নির্দেশ করেছেন যে আপনি যে কোনও উপায়ে 7 বিট ASCII এর বাইরে কোনও অক্ষর ব্যবহার করবেন না, বিষয়বস্তুটি আসলে অভিন্ন If যদি এটি না হয় তবে স্ট্রিমটি পড়ুন 7 বিট এসকিআই, বেস 64 স্ট্রিংটিতে ফলাফল স্ট্রিংটি ডিকোড করুন, ইউটিএফ -8 এ স্ট্রিংটিতে এনকোডিং সহ বাই স্ট্রিমটি ডিকোড করুন, আপনাকে যা প্রতিস্থাপন করতে হবে তা প্রতিস্থাপন করুন, 7 বিএসটি এএসসিআইআই এনকোডিং সহ একটি বাইস্ট্রিমে লিখুন, ফলাফল 64 এডকোডটি বেসড্রিমটি লিখুন, ফলাফলটি লিখুন 7 বিএসটি এসসিআইআই) (ফ্যো!) সহ লক্ষ্য প্রবাহের এনকোডিংয়ের স্ট্রিং।

পুরানো মাইমপার্টটি নতুন মাইম পার্টের সাথে প্রতিস্থাপন করুন। আপনি ব্যবহার করতে পারেন old.Parent.ReplaceChild(old, new)

জিনিসটি সংকলন করুন এবং এক্সপ্লোরেশনে সংকলিত এজেন্টের সাথে dll সংযুক্ত করুন। ডকুমেন্টেশন থেকে অনুলিপি-পেস্ট করুন: Install-TransportAgent -Name "MyCustomAgent" -TransportAgentFactory "MyAgents.MyAgentFactory" -AssemblyPath "C:\myagents\MyAgent.dll"এক্সচেঞ্জ ম্যানেজমেন্ট শেল থেকে কার্যকর করুন।

সমন্বিত ইমেলটি এখন 7 বিট এএসসিআইআইতে থাকবে এবং সঠিক প্রাপক থাকবে।

এটা কি সম্ভব? হ্যাঁ. এই সব কি মূল্য? সম্ভবত না. কোন নির্বোধ ইমেল ক্লায়েন্টরা যেভাবেই ইউটিএফ -8 পড়তে পারে না? আমি ব্যক্তিগতভাবে কারও কিছুই জানতাম না এবং কেবলমাত্র ইমেল ক্লায়েন্টদের আপগ্রেড করার চেয়ে তাদের সমর্থন করার ব্যয় সম্ভবত অনেক বেশি।

আপনি যদি এটি চেষ্টা করতে যাচ্ছেন (আমি আপনাকে এটি করার পরামর্শ দিচ্ছি না) এবং কোডিং অংশটি হারিয়ে ফেলেন তবে এই প্রশ্নগুলি স্ট্যাকওভারফ্লোয়ের সুযোগে থাকবে।


বিস্তারিত প্রতিক্রিয়া জন্য ধন্যবাদ! এটি আসলে টিকিটিং সিস্টেমের সাথে করতে হবে। আমরা যে টিকিটিং সিস্টেমটি ব্যবহার করছি তা ইমেলগুলি থেকে টিকিট তৈরি করতে পারে তবে এটি ইউটিএফ -8 ইমেলগুলিকে চোক করে। এটি কেবল ইউএস-এএসসিআইআই এবং আইএসও -8859-1 এর সাথে কাজ করে (কমপক্ষে এটি আমরা আমাদের পরীক্ষাগুলিতে দেখেছি)। আমি জানি, পুরো জিনিসটি বেশ হাস্যকর, তবে কমপক্ষে আমাকে পরিচালনায় ফিরে যেতে হবে এবং আমাদের বিকল্পগুলি দিতে হবে। :)
রোলেলেম

টিকিটিং সিস্টেমের ক্লায়েন্টকে পুনরায় ইঞ্জিনিয়ারিং (এটি যদি কোনও গৃহ-প্রকল্পে থাকে) তবে ASCII এর চেয়ে ইউটিএফ -8 নেওয়ার সম্ভাবনা এর চেয়ে কম কাজ হতে পারে, এবং যদি তা না হয়, তবে, গডস্পিড;)
মার্টিজন ২ti
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.