ইমেল বিষয়টিতে অ্যানিমেটেড আইকন


103

আমি ডেটা ইউআরআই সম্পর্কে জানি যেখানে base64এনকোডেড ডেটা ইমেজগুলির মতো ইনলাইন ব্যবহার করা যেতে পারে। আজ আমি আসলে একটি স্প্যাম ইমেল পেয়েছি যার সাথে এটির বিষয়ে একটি অ্যানিমেটেড (জিআইএফ) আইকন ছিল:

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

এখানে একাকী আইকনটি রয়েছে:

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

সুতরাং আমার মনের একমাত্র জিনিসটি ইউটিআর সম্পর্কিত সমস্ত তথ্য ছিল এবং যদি জিমেইল কিছু প্রকার ইমোটিকনগুলিকে বিষয় sertedোকাতে দেয়। আমি ইমেলের সম্পূর্ণ বিশদ সংস্করণ দেখেছি এবং নীচের ছবিতে বিষয় লাইনের দিকে ইঙ্গিত করেছি:

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

তাই জিআইএফ =?UTF-8?B?876Urg==?=এনকোডড স্ট্রিং থেকে আসে যা ডেটা ইউআরআই স্কিমের অনুরূপ তবে আমি এটি থেকে আইকনটি বের করতে পারিনি। এখানে উপাদান এইচটিএমএল উত্স:

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

দীর্ঘ গল্প সংক্ষিপ্ত, হেক্সাডেসিমাল সংখ্যা https://mail.google.com/mail/e/XXXযেখানে থেকে প্রচুর ইমোটিকন আছে XXX। সেগুলি কোথাও নথিভুক্ত বা আমি এটি খুঁজে পাইনি। যদি এটি ডেটা ইউআরআই সম্পর্কে হয়, তবে কীভাবে এগুলি Gmail এর ইমেল সাবজেক্টে অন্তর্ভুক্ত করা সম্ভব? (আমি সেই ইমেলটি ইয়াহু ইমেল অ্যাকাউন্টে ফরওয়ার্ড করে [?]আইকনের পরিবর্তে দেখেছি ) এবং যদি এটি না হয় তবে কীভাবে সেই এনকোডযুক্ত স্ট্রিংটিকে পার্স করা যায়?


25
আসল প্রশ্ন হচ্ছে আপনি এগুলি কীভাবে ব্লক করবেন ?!
bambams

@ বাম্বামস আপনার মানে কী?
রেভো

13
এগুলি অবিশ্বাস্যরকম বিরক্তিকর এবং যেমন আপনি বলেছিলেন সেগুলি কেবল স্প্যামারদের দ্বারা ব্যবহৃত হয়। আমি বরং এগুলি জিমেইল দ্বারা প্রদর্শিত হয়নি (এটি ইতিমধ্যে 99% স্প্যাম হিসাবে সনাক্ত করেছে)।
bamams

1
এগুলি কীভাবে ব্লক করা যায় তা এখানে
জেমসস্টোন

জেমসস্টোন এর লিঙ্কটি বার্তাগুলি কীভাবে ব্লক করবেন তা দেখায়; আপনি যদি ইমোজি নিজেই ব্লক করতে চান এবং বার্তাগুলি ছেড়ে দিতে চান, তবে জিমেইল সাবজেক্ট লাইন ইমোজি রোচ মোটেলের ব্যবহারকারীলিপিটি ব্যবহার করুন ।
লুই সেম্প্রিনি

উত্তর:


175

ছোট বিবরণ:

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


এই আইকন কি?

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

জিমেইল Emোকানো ইমোটিকনস

আমি 52Eতালিকার আইকনটি দেখতে পাচ্ছি না, আবার আরও অনেকে রয়েছেন যা একই সম্মেলনটি অনুসরণ করে।

মনে রাখবেন যে এখানে কিছু আইকন রয়েছে যাদের নাম উপসর্গ করা হয়েছে, যেমন । এই আইকনগুলি এই পদ্ধতিতে কীভাবে ব্যবহার করা যায় তা আমি নির্ধারণ করতে সক্ষম হইনি।gtalk.03C gtalk.03C


এই ডেটা ইউআরআই জিনিসটি কী?

এটি আসলে কোনও ডেটা ইউআরআই নয় , যদিও এটি কিছু সাদৃশ্য ভাগ করে। এটি আরএফসি 2047 - সংজ্ঞায়িত ইমেল বিষয়গুলিতে নন-এসসিআইআই অক্ষরগুলি এনকোড করার জন্য এটি একটি বিশেষ বাক্য গঠন । মূলত, এটি এর মতো কাজ করে।

=?charset?encoding?data?=

সুতরাং, আমাদের উদাহরণ স্ট্রিংয়ে, আমরা নিম্নলিখিত তথ্য আছে।

=?UTF-8?B?876Urg==?=
  • charset = UTF-8
  • encoding= B(মানে বেস 64)
  • data = 876Urg==


সুতরাং কিভাবে এটি কাজ করে?

আমরা জানি যে কোনওভাবে, 876Urg==আইকনটির অর্থ 52E, তবে কীভাবে?

আমরা যদি বেস 64 ডিকোড 876Urg==করি তবে আমরা পাই 0xf3be94ae। এটি বাইনারিতে নিম্নলিখিতগুলির মতো দেখাচ্ছে:

11110011 10111110 10010100 10101110

এই বিটগুলি 4-বাইট UTF-8 এনকোডড অক্ষরের সাথে সামঞ্জস্যপূর্ণ।

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

সুতরাং সম্পর্কিত বিটগুলি নিম্নলিখিত:

     011   111110   010100   101110

অথবা যখন সারিবদ্ধ:

00001111 11100101 00101110

হেক্সাডেসিমালে, এই বাইটগুলি নিম্নলিখিত:

FE52E

যেমন আপনি দেখতে পাচ্ছেন, অন্যান্য ইউটিএফ -8 বর্ণগুলি থেকে আইকনগুলি FEআলাদা করার জন্য সম্ভবত উপসর্গ ব্যতীত এটি আইকন ইউআরএলটিতে goomojiমেলে 52E। কিছু পরীক্ষা প্রমাণ করে যে এটি অন্যান্য আইকনগুলির জন্য সত্য holds


প্রচুর কাজের মতো মনে হচ্ছে, কোনও কনভার্টার আছে ?:

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

রূপান্তর ফাংশন:

import base64

def goomoji_decode(code):
    #Base64 decode.
    binary = base64.b64decode(code)
    #UTF-8 decode.
    decoded = binary.decode('utf8')
    #Get the UTF-8 value.
    value = ord(decoded)
    #Hex encode, trim the 'FE' prefix, and uppercase.
    return format(value, 'x')[2:].upper()

def goomoji_encode(code):
    #Add the 'FE' prefix and decode.
    value = int('FE' + code, 16)
    #Convert to UTF-8 character.
    encoded = chr(value)
    #Encode UTF-8 to binary.
    binary = bytearray(encoded, 'utf8')
    #Base64 encode return end return a UTF-8 string. 
    return base64.b64encode(binary).decode('utf-8')

উদাহরণ:

print(goomoji_decode('876Urg=='))
print(goomoji_encode('52E'))

আউটপুট:

52E
876Urg==

এবং অবশ্যই, একটি আইকনের ইউআরএল সন্ধানের জন্য জিমেইলে কেবল একটি নতুন খসড়া তৈরি করা, আপনি যে আইকনটি চান তা সন্নিবেশ করা এবং আপনার ব্রাউজারের ডিওএম পরিদর্শক ব্যবহার করা দরকার।

ডিওএম ইন্সপেক্টর


14
এটি একটি আশ্চর্যজনক সম্পূর্ণ উত্তর। আমার বলার মতো কিছু নেই তবে আমি কেবল অবাক হয়েছি আপনি কীভাবে তার বিপরীতে ইঞ্জিনিয়ারিং করেছিলেন !! ধন্যবাদ আলেকজান্ডার
রেভো

2
Bবিশেষ সিনট্যাক্সে বেস 64 এর সূত্র বোঝায় যে অনুমান করা যেতে পারে (স্ট্রিংটি শেষের ধরণের বেস বেস 64 এনকোডড স্ট্রিংয়ের মতো দেখায়, যদি আপনি আগে দেখে থাকেন); যার পরে এটি লক্ষ্য করা খুব কঠিন নয় যে চারটি বাইট ইউনিকোড চরগুলির জন্য ইউটিএফ -8 প্যাটার্নগুলির একটি অনুসরণ করে, যেমন তিনি ইউনিকোডের সন্ধান করছেন। এটি চমত্কার গোয়েন্দা কাজ, সমস্ত একই :)
3

3
@ সমারদের সম্পর্কে অনুমান করার দরকার নেই B- এটি # 4

রেফারেন্স হিসাবে উপরের উত্তরে আরএফসি উল্লেখ করা ভাল হবে।
সমান

@ জেরেমি মিলার প্রাসঙ্গিক আরএফসি ট্র্যাক করার জন্য ধন্যবাদ! আমি যখন এই উত্তরটি লিখছিলাম তখন আমি এটি সনাক্ত করতে সক্ষম হইনি।
আলেকজান্ডার ও'মারা

19

আপনি যদি সঠিক হেক্স কোড পয়েন্টটি ব্যবহার করেন (যেমন 'পু-র গাদা' এর জন্য fe4f4 ) এবং যদি এটি সাবজেক্ট লাইন শিরোনামের মধ্যে সঠিকভাবে এনকোড করা থাকে তবে এটি বেস64 (@ অ্যালেক্সান্ডারওমারা দেখুন) বা উদ্ধৃত-প্রিন্টেবল ( =?utf-8?Q?=F3=BE=93=B4?=) হতে দিন, তবে Gmail স্বয়ংক্রিয়ভাবে স্বয়ংক্রিয়ভাবে আসবে পার্স করুন এবং এটি সম্পর্কিত ইমোজি দিয়ে প্রতিস্থাপন করুন।

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

ইমেলমার্কেটটিপস.ডে জিমেইল ইমোজিগুলি


0

গোমোজি-ট্যাগযুক্ত এইচটিএমএল চিত্র সম্পর্কে এমন একটি ভাল গবেষণার উত্তরের জন্য আলেকজান্ডার ও'মারাকে অনেক ধন্যবাদ !

আমি কেবল তিনটি জিনিস যুক্ত করতে চেয়েছিলাম:

  • এখনও অনেকগুলি ইমোজি (এবং অন্যান্য ইউনিকোড সিকোয়েন্সগুলি ছবি উত্পন্ন করছে) যা স্প্যামার এবং অন্যান্য পূর্ববর্তী বিপণনকারীরা ইমেল সাবজেক্ট লাইনে ব্যবহার শুরু করে এবং এই Gmail টি এইচটিএমএল চিত্রগুলিতে রূপান্তর করে না। কিছু ব্রাউজারগুলিতে এগুলি গা bold় এবং বর্ণযুক্ত দেখা যায় যা অ্যানিমেশনের মতো প্রায় খারাপ। ব্রাউজারগুলি এটিকে প্রাণবন্ত করতেও বেছে নিতে পারে তবে আমি জানি না যে এটি করা কি না। এই ইউনিকোড সিকোয়েন্সগুলি ব্রাউজারটি ইউনিকোড পাঠ্য হিসাবে প্রদর্শিত হয়, তাই সঠিক উপস্থিতি (রঙ বা না, অ্যানিমেটেড বা না, ...) ব্রাউজারটি কোন পাঠ্য রেন্ডারিং সিস্টেম ব্যবহার করছে তার উপর নির্ভর করে। প্রদত্ত ইউনিকোড ইমোজিগুলির উপস্থিতি কোনও ইউনিকোড তারতম্য নির্বাচনকারী এবং ইমোজি সংশোধকগুলির উপরও নির্ভর করেএটি ইউনিকোড কোড পয়েন্ট ক্রম এর কাছাকাছি প্রদর্শিত হবে। চিত্র-ভিত্তিক ইমোজি স্প্যামের বিপরীতে, এই সিকোয়েন্সগুলি ইউনিকোড পাঠ্য হিসাবে ব্রাউজার এবং অন্যান্য অ্যাপ্লিকেশনগুলিতে অনুলিপি করে কপি করা যায়।

  • আমি আশা করি এই স্ট্যাক ওভারফ্লো প্রশ্নটি পড়া অনেক বিপণনকারী কেবল নাহ বলবেন। এই ক্রমগুলি আপনার ইমেল সাবজেক্ট লাইনে অন্তর্ভুক্ত করা একটি ভয়ঙ্কর ধারণা এবং এটি অবিলম্বে আপনাকে এবং আপনার ব্র্যান্ডকে লো লাইফ স্প্যামার হিসাবে কলুষিত করবে। আপনার ইমেলটি যে "মনোযোগ" পাবে তা মূল্য নয়।

  • অবশ্যই সবার মনে প্রথম প্রশ্নটি হ'ল: "আমি কীভাবে এই বিষয়গুলি থেকে মুক্তি পাব?" ভাগ্যক্রমে এই ওপেন-সোর্স গ্রিসমোনকি / ট্যাম্পারমনকি / ভায়োলেটমনকি ইউজার স্ক্রিপ্ট রয়েছে:

জিমেইল সাবজেক্ট লাইন ইমোজি রোচ মোটেল

এই ব্যবহারকারীর স্ক্রিপ্টটি এইচটিএমএল-চিত্র ( আলেকজান্ডার ও'মারার দুর্দান্ত কাজের জন্য ধন্যবাদ ) এবং খাঁটি-ইউনিকোড প্রকার উভয়কেই মুছে ফেলে ।

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

var re = /(\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F|[\u{2100}-\u{2BFF}\u{E000}-\u{F8FF}\u{1D000}-\u{1F5FF}\u{1F650}-\u{1FA6F}\u{F0000}-\u{FFFFF}\u{100000}-\u{10FFFF}])\s*/gu

// which includes the Unicode Emoji pattern from
//   https://github.com/tc39/proposal-regexp-unicode-property-escapes
// plus also these blocks frequently used for spammy emojis
// (see https://en.wikipedia.org/wiki/Unicode_block ):
//   U+2100..U+2BFF     Arrows, Dingbats, Box Drawing, ...
//   U+E000..U+F8FF     Private Use Area (gmail generates them for some emoji)
//   U+1D000..U+1F5FF   Musical Symbols, Playing Cards (sigh), Pictographs, ...
//   U+1F650..U+1FA6F   Ornamental Dingbats, Transport and Map symbols, ...
//   U+F0000..U+FFFFF   Supplementary Private Use Area-A
//   U+100000..U+10FFFF Supplementary Private Use Area-B
// plus any space AFTER the discovered emoji spam
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.