BASE64_LENGTH_79_INF: স্প্যামআসাসিন লেনদেনের ইমেলগুলিকে দণ্ডিত করে


9

আমি লক্ষ্য করেছি যে একটি ম্যাজেন্টো শপ থেকে লেনদেনমূলক ইমেলগুলি প্রায়শই স্প্যাম হিসাবে চিহ্নিত করা হত। অ্যাপাচি স্প্যামএসাসিন BASE64_LENGTH_792.0 ) F বিধি থেকে একটি স্কোর দেয় ।

বিধি ব্যাখ্যায় বলা হয়েছে:

Http://en.wikedia.org/wiki/Base64 অনুসারে , বেস 64৪ কেবলমাত্র 76 76 অক্ষর দীর্ঘ হওয়া উচিত, সুতরাং এগুলি বিন্যাসের বাইরে।

লিঙ্কযুক্ত উইকিপিডিয়া নিবন্ধ থেকে:

MIME বেস 64-এনকোডড লাইনের জন্য একটি নির্দিষ্ট দৈর্ঘ্য নির্দিষ্ট করে না, তবে এটি 76 অক্ষরের সর্বাধিক লাইনের দৈর্ঘ্য নির্দিষ্ট করে। অতিরিক্তভাবে এটি নির্দিষ্ট করে যে কোনও অতিরিক্ত-বর্ণমালা অক্ষরগুলি অবশ্যই অনুগত ডিকোডার দ্বারা উপেক্ষা করা উচিত, যদিও বেশিরভাগ বাস্তবায়নগুলি এনকোডড লাইনগুলি সীমিত করতে সিআর / এলএফ নিউলাইন জোড় ব্যবহার করে।

সুতরাং দেখে মনে হচ্ছে বেস 64৪ এনকোডযুক্ত সামগ্রীটি প্রত্যাশার মতো লাইনে বিভক্ত হয়নি। কেউ কি একই রকম মুখোমুখি হয়েছিল? এই খারাপ ফর্ম্যাটটির কারণ কী হতে পারে?

উত্তর:


9

পার্সি-জাতির প্রাচীন শাস্ত্রগ্রন্থ কাঠামোর মধ্যে, magento/lib/Zend/Mime.phpকার্যকরী একটি const LINELENGTH = 72;কিন্তু ধ্রুব মুছে ফেলা app/code/core/Zend/Mime.phpএবং সেট 200. করার জন্য প্রয়োজনীয় ওভাররাইট করতে app/code/core/Zend/Mime.phpMagento এর নিয়মিত প্রক্রিয়া ব্যবহার করে এবং বাস্তবায়ন পরিবর্তন encodeপদ্ধতি, একটি ভিন্ন ধ্রুবক সঙ্গে স্ব :: LINELENGTH প্রতিস্থাপন:

public static function encode($str, $encoding, $EOL = self::LINEEND)
{
    switch ($encoding) {
        case self::ENCODING_BASE64:
           // original: return self::encodeBase64($str, self::LINELENGTH, $EOL);
           return self::encodeBase64($str, 72, $EOL); // hardcoded value, just to emphasize the meaning

        case self::ENCODING_QUOTEDPRINTABLE:
            return self::encodeQuotedPrintable($str, self::LINELENGTH, $EOL);

        default:
            /**
             * @todo 7Bit and 8Bit is currently handled the same way.
             */
            return $str;
    }
}

/ সম্পাদনা: শুরুর দিকে আমি নিজেকে :: LINELENGTH এর সাথে জেন্ড_মাইম :: লিনেলএনজিটিএইচ প্রতিস্থাপন করেছি; এটি কাজ করবে না কারণ অটোলোডার সর্বদা লিগ / জেন্ডের পরিবর্তে ম্যাজেন্টো কোর থেকে জেন্ড_মাইম ক্লাস লোড করবে।


হার্ডকোডিংয়ের 72 কি না 76 এর কোনও কারণ আছে?
রডুপারভান

1
জেন্ড_মাইমের আসল বাস্তবায়ন হ'ল const LINELENGTH = 72; (দেখুন lib/Zend/Mime.php) সুতরাং আমি বিশ্বাস না করার কোনও কারণ দেখিনি; সম্ভবত 76 এর পার্থক্যটি লাইন শেষের জন্য ব্যবহৃত হয়। যথাযথ ধ্রুবক ব্যবহারের পরিবর্তে মানটিকে হার্ডকোডিং করা কেবল পয়েন্টটি দেখানো ছিল। প্রকৃত বাস্তবায়নে, সেই মানটি অবশ্যই একটি ধ্রুবক হিসাবে বাস করতে পারে। / সম্পাদনা: Zend_Mime::encodeBase64()ব্যবহারগুলি প্রয়োগ করে chunk_splitযা $ চুনক্লেনে স্ট্রিংকে বিভক্ত করে তারপরে যোগ হয় adds প্রান্ত ( php.net/manual/en/function.chunk-split.php দেখুন )
আদি

1

আপনার মেইল ​​সার্ভার (এসএমটিপি) কীভাবে সেট আপ হয়? আপনার এসপিএফ রেকর্ডটি কি সঠিক?

মেলটি আমাকে স্প্যাম হিসাবে চিহ্নিত করতে পারে তার বিভিন্ন কারণ রয়েছে, সামগ্রীটি এর একটি অংশ মাত্র।

এখানে আরও তথ্য: https://blog.amasty.com/5-steps-for-no-spam-e-mails-in-magento/


আমি এই নির্দিষ্ট কারণটি খুঁজছি, যা কেবলমাত্র সামগ্রীর সাথে সম্পর্কিত। তবে লিঙ্কযুক্ত নিবন্ধটিতে দরকারী বিট রয়েছে: "ডিফল্টরূপে ম্যাগেন্টো উদ্ধৃতি-প্রিন্টযোগ্য লাইনের দৈর্ঘ্যের জন্য 200 ব্যবহার করে Z - ধন্যবাদ!
ফ্যাবিয়ান শেমংলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.