চিঠি, লেবেল এবং খামের মতো নথি দ্রুত এবং সহজে তৈরি করার জন্য মেইল মার্জ হল মাইক্রোসফট ওয়ার্ডের একটি বৈশিষ্ট্য। Aspose.Words ক্লাউড স্ট্যান্ডার্ড মেল মার্জ করে এবং এটিকে অনেক ধাপ এগিয়ে নিয়ে যায়, এটিকে একটি পূর্ণাঙ্গ রিপোর্টিং সমাধানে পরিণত করে যা আপনাকে রিপোর্ট, ক্যাটালগ, ইনভেন্টরি এবং ইনভয়েসের মতো আরও জটিল নথি তৈরি করতে দেয়৷ Aspose.Words ক্লাউড রিপোর্টিং সমাধানের সুবিধা হল:

  • স্ট্যান্ডার্ড মেল মার্জ ক্ষেত্র ব্যবহার করে মাইক্রোসফ্ট ওয়ার্ডে রিপোর্ট ডিজাইন করুন
  • নথিতে অঞ্চলগুলিকে সংজ্ঞায়িত করুন যা বৃদ্ধি পায়, যেমন একটি অর্ডারের বিস্তারিত সারি
  • মেল মার্জ করার সময় ছবি সন্নিবেশ করান
  • মেল মার্জ করার সময় HTML সন্নিবেশ করান

মৌলিক পদক্ষেপ

একটি মেল মার্জ সঞ্চালনের পদক্ষেপগুলি বেশ সহজ। প্রথমত, আপনি একটি Word নথি তৈরি এবং ডিজাইন করতে Microsoft Word ব্যবহার করেন, সাধারণত একটি টেমপ্লেট বলা হয়। নোট করুন যে ডকুমেন্টটি মাইক্রোসফ্ট ওয়ার্ড টেমপ্লেট (.ডট) হতে হবে না, এটি একটি সাধারণ .doc নথি হতে পারে। আপনি টেমপ্লেটে মার্জ ফিল্ড নামে কিছু বিশেষ ক্ষেত্র সন্নিবেশ করান যেখানে আপনি আপনার ডেটা উৎস থেকে ডেটা পরে সন্নিবেশ করতে চান। তারপর Aspose.Words REST API দিয়ে, আপনি একটি মেল মার্জ অপারেশন চালান। মেল মার্জ অপারেশনটি আপনার ডেটা উত্স থেকে ডেটা নেবে এবং এটি নথিতে মার্জ করবে।

আপনি নথিতে পুনরাবৃত্তিযোগ্য একত্রীকরণ অঞ্চলও মনোনীত করতে পারেন বা বিশেষ একত্রীকরণ ক্ষেত্র সন্নিবেশ করতে পারেন যা আপনাকে চিত্রের মতো অন্যান্য সামগ্রী সন্নিবেশ করার অনুমতি দেয়। আপনি নথির ভিতরে মেল মার্জ ক্ষেত্র এবং পুনরাবৃত্তিযোগ্য অঞ্চলগুলি কীভাবে সেট আপ করেন তার উপর নির্ভর করে, নথিটি আপনার ডেটা উত্সে একাধিক রেকর্ড মিটমাট করার জন্য বৃদ্ধি পাবে৷ আপনি যদি মেল মার্জ অঞ্চলগুলি ব্যবহার না করেন, তাহলে মেল মার্জটি Microsoft Word মেল মার্জের অনুরূপ হবে এবং ডেটা উত্সের প্রতিটি রেকর্ডের জন্য সম্পূর্ণ নথির বিষয়বস্তু পুনরাবৃত্তি করা হবে৷ পুনরাবৃত্তিযোগ্য মেল মার্জ অঞ্চলগুলি ব্যবহার করে, আপনি একটি নথির ভিতরে অংশগুলি মনোনীত করতে পারেন যা ডেটা উত্সে প্রতিটি রেকর্ডের জন্য পুনরাবৃত্তি করা হবে। উদাহরণস্বরূপ, আপনি যদি একটি টেবিল সারিকে পুনরাবৃত্তিযোগ্য অঞ্চল হিসাবে চিহ্নিত করেন, তাহলে এই টেবিলের সারিটি পুনরাবৃত্তি করা হবে, যার ফলে আপনার সমস্ত ডেটা মিটমাট করার জন্য টেবিলটি গতিশীলভাবে বৃদ্ধি পাবে।

একটি নথি প্রস্তুত করুন

আপনি একটি মেল মার্জ কার্যকর করার আগে, আপনাকে ডকুমেন্ট টেমপ্লেট প্রস্তুত করতে হবে। আপনার একত্রীকরণ ক্ষেত্র সন্নিবেশ করা উচিত যা আপনার ডেটা উৎস থেকে মান দিয়ে প্রতিস্থাপিত হবে।

একটি নথিতে মার্জ ক্ষেত্র সন্নিবেশ করা হচ্ছে

একটি নথিতে মার্জ ক্ষেত্র সন্নিবেশ করতে:

  1. Microsoft Word এ আপনার নথি খুলুন।
  2. নথিতে, আপনি যেখানে মার্জ ফিল্ড রাখতে চান সেখানে ক্লিক করুন।
  3. সন্নিবেশ মেনু খুলুন এবং ক্ষেত্র ডায়ালগ খুলতে ক্ষেত্র নির্বাচন করুন।
  4. ক্ষেত্রের নামের তালিকা থেকে, মার্জফিল্ড নির্বাচন করুন।
  5. ক্ষেত্রের নাম পাঠ্য বাক্সে, মার্জ ক্ষেত্রের জন্য একটি নাম লিখুন এবং ঠিক আছে টিপুন।

যেহেতু একটি মার্জ ক্ষেত্র একটি নিয়মিত Microsoft Word ক্ষেত্র, তাই আপনি কীবোর্ড শর্টকাট Alt+F9 ব্যবহার করে Microsoft Word-এ আপনার নথিতে ফিল্ড কোড এবং ফলাফল প্রদর্শনের মধ্যে পরিবর্তন করতে পারেন। ফিল্ড কোড কোঁকড়া ধনুর্বন্ধনী মধ্যে প্রদর্শিত হয়.

সহজ মেল মার্জ

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

আসুন ডিনার ইনভাইটেশন ডেমো দেখে নেওয়া যাক। এটি ডেটা উত্সে সংজ্ঞায়িত ক্লায়েন্টদের একটি তালিকার জন্য একটি চিঠি তৈরি করে। টেমপ্লেটটিতে বেশ কয়েকটি মার্জ ক্ষেত্র রয়েছে যা দুটি ডেটা উত্স থেকে তৈরি করা হয়েছে; অন্য কথায়, দুটি মেল মার্জ একের পর এক সঞ্চালিত হয়। প্রথমত, প্রথম ডেটা উৎস থেকে ডেটা টেমপ্লেটে মার্জ করা হয়। এই ডেটা উত্সটিতে শুধুমাত্র একটি সারি রয়েছে কারণ এটি আমন্ত্রণকারী সম্পর্কে তথ্য, তাই পুরো নথির বিষয়বস্তু পুনরাবৃত্তি হয় না এবং শুধুমাত্র উপযুক্ত ক্ষেত্রগুলি ডেটা দিয়ে পূর্ণ হয়৷ তারপরে দ্বিতীয় মেল মার্জ অপারেশনটি সম্পাদিত হয়। এটি যে ডেটা উৎস ব্যবহার করে তাতে ক্লায়েন্টদের সম্পর্কে তথ্য থাকে। প্রতিটি ডেটা সারির জন্য পুরো টেমপ্লেটটি পুনরাবৃত্তি করা হয়, এবং প্রতিটি পুনরাবৃত্তি করা অনুলিপি সংশ্লিষ্ট ক্লায়েন্টের ডেটা দিয়ে পপুলেট করা হয়।

মেল মার্জ

ফলস্বরূপ, আমাদের কাছে একটি নথি রয়েছে যাতে রয়েছে পাঁচটি ভর্তি, সম্পূর্ণ এবং ব্যক্তিগতকৃত আমন্ত্রণপত্র (প্রথমটির একটি খণ্ড নীচে দেখানো হয়েছে):

মেল মার্জ সঞ্চালন

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

সিম্পল মেল মার্জ করার কোড নিচে দেওয়া হল:

// সম্পূর্ণ উদাহরণ এবং ডেটা ফাইলের জন্য, দয়া করে https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet-এ যান

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);
StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

var fileName = "DinnerInvitation.docx";
var destFileName = "InviterAdded.docx";
var data = File.ReadAllText(@"c:\Data\" + "Inviter.xml");
string folder = null; // File exists at the root of the storage

// ক্লাউড স্টোরেজে সোর্স ডকুমেন্ট আপলোড করুন
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

// প্রথমবার মেল মার্জ অপারেশন চালান
var executeMailMergeRequest = new PostDocumentExecuteMailMergeRequest(fileName, data, folder, destFileName: destFileName, withRegions: false);
var actual = wordsApi.PostDocumentExecuteMailMerge(executeMailMergeRequest);

// দ্বিতীয়বার মেল মার্জ অপারেশন চালান
fileName = destFileName;
destFileName = "FinalDinnerInvitation.docx";
data = File.ReadAllText(@"c:\Data\" + "Clients.xml");

executeMailMergeRequest = new PostDocumentExecuteMailMergeRequest(fileName, data, folder, destFileName: destFileName, withRegions: false);
actual = wordsApi.PostDocumentExecuteMailMerge(executeMailMergeRequest);

অঞ্চলের সাথে মেল মার্জ করুন

আপনি যদি নথির ভিতরে গতিশীলভাবে অংশ বাড়াতে চান তবে অঞ্চলগুলির সাথে মেল মার্জ ব্যবহার করুন। নথিতে একটি মেল মার্জ অঞ্চল নির্দিষ্ট করতে, আপনাকে মেল মার্জ অঞ্চলের শুরু এবং শেষ চিহ্নিত করতে দুটি মেল মার্জ ক্ষেত্র সন্নিবেশ করতে হবে। সমস্ত নথি বিষয়বস্তু যা একটি মেল মার্জ অঞ্চলের মধ্যে অন্তর্ভুক্ত করা হয়েছে স্বয়ংক্রিয়ভাবে ডেটা উত্সের প্রতিটি রেকর্ডের জন্য পুনরাবৃত্তি করা হবে৷

একটি মেল মার্জ অঞ্চলের সূচনা চিহ্নিত করতে, TableStart:MyTable নামের একটি MERGEFIELD সন্নিবেশ করুন, যেখানে MyTable যথাক্রমে XML বা JSON-এর ট্যাগ বা কী-এর সাথে মিলে যায়। মেল মার্জ অঞ্চলের শেষ চিহ্নিত করতে, TableEnd:MyTable নামের আরেকটি MERGEFIELD সন্নিবেশ করুন। এই মার্কিং ক্ষেত্রগুলির মধ্যে, আপনার ডেটা উত্সের ক্ষেত্রের সাথে সামঞ্জস্যপূর্ণ মার্জ ক্ষেত্রগুলি রাখুন৷ এই মার্জ ক্ষেত্রগুলি ডেটা উত্সের প্রথম সারির ডেটা দিয়ে পপুলেট করা হবে, তারপর পুরো অঞ্চলটি পুনরাবৃত্তি করা হবে, এবং নতুন ক্ষেত্রগুলি দ্বিতীয় সারির ডেটা দিয়ে পপুলেট করা হবে, ইত্যাদি।

একটি অঞ্চল চিহ্নিত করার সময় এই সহজ নিয়মগুলি অনুসরণ করুন:

  • TableStart এবং TableEnd ক্ষেত্রগুলি অবশ্যই নথিতে একই বিভাগে থাকতে হবে
  • যদি একটি টেবিলের ভিতরে ব্যবহার করা হয়, তাহলে টেবিলস্টার্ট এবং টেবিলএন্ড অবশ্যই টেবিলের একই সারির ভিতরে থাকতে হবে
  • মেল মার্জ অঞ্চল একে অপরের ভিতরে নেস্ট করা যেতে পারে
  • মেল মার্জ অঞ্চলগুলিকে সুগঠিত করা উচিত (সেখানে সর্বদা একই টেবিলের নামের সাথে টেবিলস্টার্ট এবং টেবিলএন্ডের এক জোড়া মিল থাকে)

উদাহরণ হিসেবে, আইটেম ক্যাটালগ ডেমো দেখুন। এখানে মেল মার্জ করার জন্য প্রস্তুত একটি অঞ্চলের একটি অংশ রয়েছে:

মেল মার্জ

লক্ষ্য করুন যে উভয় চিহ্নিত ক্ষেত্র টেবিলস্টার্ট:আইটেম এবং টেবিলএন্ড:আইটেম শব্দ টেবিলের একই সারির ভিতরে স্থাপন করা হয়েছে। মেল মার্জ কার্যকর করার পরে, এখানে ফলাফল রয়েছে:

সহজ মেল মার্জ

অঞ্চলগুলির সাথে মেল মার্জ করার কোডটি নীচে দেওয়া হয়েছে:

// সম্পূর্ণ উদাহরণ এবং ডেটা ফাইলের জন্য, দয়া করে https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet-এ যান

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);
StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

var fileName = "Invoice_Template.doc";
var destFileName = "Invoice_Template_out_.doc";
var data = File.ReadAllText(@"c:\Data\" + "CustomerData.xml");
string folder = null; // File exists at the root of the storage

// ক্লাউড স্টোরেজে ইনপুট ডকুমেন্ট আপলোড করুন
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

var executeMailMergeRequest = new PostDocumentExecuteMailMergeRequest(fileName, data, folder, destFileName: destFileName, withRegions: true);
var actual = wordsApi.PostDocumentExecuteMailMerge(executeMailMergeRequest);

‘গোঁফ’ টেমপ্লেট সিনট্যাক্স ব্যবহার করে মেল মার্জ করুন

এই সিনট্যাক্স আপনাকে মেল মার্জের সাথে ব্যবহারের জন্য টেমপ্লেট তৈরি করতে দেয় যা মার্জ ফিল্ডের পরিবর্তে প্লেইন টেক্সট মার্কার ব্যবহার করে। এই মার্কারগুলি দেখতে এইরকম: {{ FieldName }}

Object.Attribute Syntax

নিম্নলিখিত সিনট্যাক্স ব্যবহার করে আপনি সহজেই ক্ষেত্রগুলির বৈশিষ্ট্যগুলিকে একত্রিত করতে পারেন:

  {{ Address.Street }}  

এটি XML ডেটা থেকে ডেটা মার্জ করবে যা এইরকম দেখাচ্ছে:

<Order> // <-- Current context is here.  
  <Number>23</Number>  
  <Address>  
    <Street>Nelson Street</Street>  
    <Suburb>Howick</Suburb>  
    <City>Auckland</City>  
  </Address>  
  <PhoneNumber>543 1234</PhoneNumber>  
</Order>  

Foreach ব্লক

আপনি foreach ট্যাগ ব্যবহার করে একাধিক রেকর্ড থেকে ডেটা মার্জ করতে পারেন। এটি প্রচলিত মার্জ ক্ষেত্রগুলির সাথে মেল মার্জ অঞ্চলের অনুরূপ। আপনি এই ধরনের ব্লক নেস্ট করতে পারেন.

{{ #foreach Order }}  
  {{ Number }}  
    {{ Address.Street }}  
      {{ #foreach Item }}  
        {{ Description }} {{ Cost}} {{ Total }}  
      {{/foreach Item }}  
{{ /foreach Order }} 

আপনি এই ক্ষেত্রগুলিকে মিশ্রিত করতে পারেন এবং সেগুলিকে অন্যান্য Microsoft Word ক্ষেত্রের মধ্যে রাখতে পারেন, যেমন IF বা ফর্মুলা ক্ষেত্র৷

শর্তাধীন ব্লক

আপনি Aspose.Words ক্লাউড ব্যবহার করে IF স্টেটমেন্টের সাথে মেল মার্জ ব্যবহার করতে পারেন। IF ব্লক শুধুমাত্র তখনই কার্যকর হয় যদি এর সাথে যুক্ত বুলিয়ান এক্সপ্রেশনটি সত্য হয়। IF এর সিনট্যাক্স নীচে দেখানো হয়েছে।

{ IF "{{ GENDER }}" = “MALE” “true text” “false text” }

‘গোঁফ’ টেমপ্লেট ব্যবহার করে মেল মার্জ করার কোডটি নীচে দেওয়া হল:

// সম্পূর্ণ উদাহরণ এবং ডেটা ফাইলের জন্য, দয়া করে https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet-এ যান

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);
StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

var fileName = "VendorTemplate.doc";
var destFileName = "VendorTemplate_Out.docx";
string folder = null; // File exists at the root of the storage

var data = File.ReadAllText(@"c:\Data\" + "Vendors.xml");

// ক্লাউড স্টোরেজে ইনপুট ডকুমেন্ট আপলোড করুন
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

var postExecuteTemplateRequest = new PostExecuteTemplateRequest(fileName, data, folder, destFileName: destFileName);
var actual = wordsApi.PostExecuteTemplate(postExecuteTemplateRequest);

মেল মার্জ চলাকালীন HTML সন্নিবেশ করান

উভয় executeMailMerge এবং executeTemplate API একটি মার্জ ক্ষেত্রে HTML সন্নিবেশ করার জন্য সমর্থন প্রদান করে। আপনাকে শুধু নিশ্চিত করতে হবে যে আপনি ডাটা সোর্স স্ট্রিং-এ এইচটিএমএল অক্ষর এড়িয়ে গেছেন এবং নিচে দেখানো “ফর্ম্যাট”=“html” অ্যাট্রিবিউট ব্যবহার করুন:

{     
  "dataSourceList": {   
    "contractDS": {  
      "contractDescription": {  
        "format":"html",   
        "htmlText": "<b>Test me 1<br><br><i>Test me 2<br><br><u>Test me 2</u></i></b><br>"         
      }       
    }     
  }   
}

নিম্নলিখিত কোড দেখায় কিভাবে মেল মার্জ করার সময় HTML সন্নিবেশ করা যায়:

// সম্পূর্ণ উদাহরণ এবং ডেটা ফাইলের জন্য, দয়া করে https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet-এ যান

using System;
using System.IO;
using Aspose.Words.Cloud.Sdk;
using Aspose.Words.Cloud.Sdk.Model;
using Aspose.Words.Cloud.Sdk.Model.Requests;

namespace Aspose.Words.Cloud.Examples.CSharp
{
	public class PopulateMailMergeTemplateWithHTMLData
	{
		public static void Run()
		{
			WordsApi wordsApi = new WordsApi(Constants.AppKey, Constants.AppSID);

			try
			{
				string fileName = "template.doc";
				string destName = "Out_PostDocumentExecuteMailMergeWithHTMLData.docx";

				// ক্লাউড স্টোরেজে আসল ডকুমেন্ট আপলোড করুন
				wordsApi.UploadFile(new UploadFileRequest(File.Open("..\\..\\..\\Resources\\" + fileName, FileMode.Open), fileName, Constants.MYStorage));

				string data = File.ReadAllText("..\\..\\..\\Resources\\TestPostDocumentExecuteMailMerge.txt", System.Text.Encoding.UTF8);
				ExecuteMailMergeRequest request = new ExecuteMailMergeRequest(fileName, data, null, Constants.MYStorage, null, null, null, null, null, null, destName);
				DocumentResponse result = wordsApi.ExecuteMailMerge(request);

			}
			catch (Exception e)
			{
				Console.WriteLine(e.ToString());
			}
		}
	}
}

মেল মার্জ চলাকালীন ছবি সন্নিবেশ করান

আপনি একটি মার্জ ক্ষেত্রে ছবি সন্নিবেশ করতে পারেন. চিত্রগুলির জন্য স্কেল ফ্যাক্টর ‘%’, ‘px’ বা ’’ (আনুপাতিক স্কেলিং) ব্যবহার করে সেট করা যেতে পারে। মেল মার্জ করার সময় ইমেজ সন্নিবেশ করার কোড নিচে দেওয়া হল:

// সম্পূর্ণ উদাহরণ এবং ডেটা ফাইলের জন্য, দয়া করে https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet-এ যান

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);
StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

var fileName = "TestMailMergeWithImages.doc";
var destFileName = "TestMailMergeWithImages_Out.docx";
var data = File.ReadAllText(WordsExamples.PathToDataFiles + @"\DocumentActions\MailMerge\" + "MailMergeData.txt");
string folder = null; // File exists at the root of the storage

// ক্লাউড স্টোরেজে ইনপুট ডকুমেন্ট আপলোড করুন
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(WordsExamples.PathToDataFiles + @"\DocumentActions\MailMerge\" + fileName), null, null);
storageApi.PutCreate(request);

var executeMailMergeRequest = new PostDocumentExecuteMailMergeRequest(fileName, data, folder, destFileName: destFileName, withRegions: false);
var actual = wordsApi.PostDocumentExecuteMailMerge(executeMailMergeRequest);

ক্লাউড SDK

যদিও উপরের কোডটি .NET-এ রয়েছে, Aspose.Words Cloud SDKs পাঁচটি ভিন্ন ভাষায় পাওয়া যায়: .NET, Java, Ruby, Python এবং Node.js। অতএব, আপনি এই ভাষাগুলির যেকোনো একটিতে সুবিধামত মেল মার্জ API কল করতে পারেন।

প্রস্তাবিত পোস্ট: