در گروه بحثی مطرح شد درمورد بانک‌های ایمیل که معمولا برای تبلیغات ناخواسته (اسپم) مورد استفاده قرار می‌گیره و اینکه این لیست‌ها چطور و از چه منابعی تهیه و گردآوری میشه. شاید در نگاه اول این موضوع بی‌ربط به جوملا بنظر برسه، اما در ادامه بررسی می‌کنیم جوملا چطور از ایمیل‌ها در برابر اسپم محافظت می‌کنه.

جوملا - محافظت از ایمیل در برابر اسپم

بانک ایمیل چطور گردآوری میشه؟

لیست ایمیل‌های بزرگ معمولا از مجموعه‌های کوچکتر دیگه خریداری و گردآوری میشه. روش‌های مختلفی برای گردآوری لیست ایمیل وجود داره که اغلب با نقض حقوق و حریم خصوصی کاربران همراه هست. اما دو روش کلی برای جمع‌آوری ایمیل‌ها وجود داره:

1- اطلاعات حساب‌های کاربران

در این روش آدرس ایمیلی که معمولا خود کاربر در یک سایت، فروم، اپلیکیشن موبایل یا خبرنامه وارد کرده گردآوری شده و بدون اجازه کاربر در اختیار شخص ثالث قرار می‌گیره.

2- پیدا کردن آدرس‌ها از وب

ربات‌ها و خزنده‌هایی وجود دارن که صفحات وب یا فایل‌های موجود در اینترنت رو می‌گردن و آدرس‌های ایمیل رو بر اساس pattern و الگوی مشخصی که داره (چند حرف + علامت@ و نام دامنه) رو در داخل اونها کشف و لیست می‌کنن. شاید توجه کرده باشید گاهی اوقات افراد ایمیل‌شون رو به شکل‌های نامتعارف (some-at-gmail[.]com یا بصورت عکس) می‌نویسن تا با الگوی نوشتاری آدرس ایمیل مطابقت نداشته باشه و براحتی توسط ربات‌ها شناسایی نشه و هدف اسپم قرار نگیره.

جوملا چطور از ایمیل‌ها محافظت می‌کنه؟

جوملا به کمک پلاگین کدگذاری ایمیل یا email cloak آدرس‌های ایمیل داخل مطالب یا ماژول‌ها رو کدگذاری و از چشم ربات‌ها پنهان می‌کنه. به این صورت که کاراکترهای آدرس ایمیل در محتوا درهم ریخته شده، و وقتی که صفحه در مرورگر کاربر باز شد توسط یک کدجاوا اسکریپت مجددا مرتب و به شکل اصلی برگردونده میشه. به این ترتیب ایمیل‌ها در داخل کدهای html و برای ربات‌ها نامفهوم، اما برای کاربر به درستی نمایش داده میشه.

email cloak

این پلاگین بصورت پیش‌فرض در جوملا فعال هست. از مدیریت پلاگین‌ها می‌تونید تنظیم کنید ایمیل‌ها در خروجی بصورت لینک یا متن معمولی ظاهر بشن. همینطور در داخل قالب یا کامپوننت‌ها با استفاده از این کد می‌تونید ایمیل‌ها رو cloak یا رمزنگاری کنید:


  echo JHtml::_('email.cloak', 'demo@example.com');

 
در کد بالا بجای demo@example.com باید آدرس ایمیل موردنظرتون رو وارد کنید. اگه تمایل ندارید ایمیل در خروجی بصورت لینک شده ظاهر بشه، می‌تونید از این کد استفاده کنید که ایمیل رو بدون هایپرلینک نمایش میده:


  echo JHtml::_('email.cloak', 'demo@example.com', 0);


با استفاده از این کد هم می‌تونید برچسب سفارشی برای لینک ایمیل تعریف کنید:


  echo JHtml::_('email.cloak', 'demo@site.ir', 1, 'click me', 0);



گروه تلگرام جوملا، به ما بپیوندید و در گفتگوها شرکت کنید:
https://telegram.me/joinchat/BELK3T9jiUo_H469X20JDw