خیلی پیش میاد که میخوایم بدونیم آیا ایمیلی که فرستادیم باز شده یا نه؟ این قضیه چند تا راه حل داره. یکیش اینه که بخش رسید ایمیل رو فعال کنیم که البته خواننده میتونه اساسا بهمون رسید نده. راه دیگش اینه که از یه افزونه استفاده کنیم. راه حل آخر هم که میخوام راجع بهش صحبت کنم استفاده از کد HTML ه.
در واقع این راه حل رو من اختراع نکردم. یه جایی که یادم نیست کجا بود در بارهاش خوندم و امروز صبح پیادهسازیش کردم. ایده کلی خیلی سادست: شما یه کد HTML تو ایمیلتون میذارین که یه عکسی رو از سرور شما باز میکنه. وقتی که دریافت کننده ایمیلش رو باز میکنه، یه درخواست برای ارسال عکس میاد و شما که رو سرور گوش به زنگین میفهمین ایمیل باز شده. اگه عکسی که فرستادین یه png یه پیکسلی شفاف باشه، کسی که ایمیل رو میخونه اساس متوجه نمیشه که شما فهمیدین ایمیل رو باز کرد. نه خانی اومده و نه خانی رفته.
پر واضحه که اگه ایمیل با ابزاری خونده بشه که به طور پیشفرض عکسها رو باز نمیکنه (مثل geary)، شمام از باز شدن عکس مطلع نمیشین. یه کلکی هم که جیمیل میزنه اینه که عکسها رو روی سرورهای خودش باز میکنه و بعد برای خواننده ایمیل میفرسته. این کار باعث میشه نشه IP خواننده رو فهمید.
خوب، برای انجام این کار من یه اسکریپت کوچیک php نوشتم. البته قبلا هم گفتهام که php بلد نیستم و چیزه که نوشتهام در واقع سر هم بندی کدهای دیگست. کاری که این کد میکنه اینه که درخواستی که براش میاد رو تو یه فایل لاگ میکنه و بعد یه عکس بر میگردونه.
کافیه این فایل رو تو یه دایرکتوری تو سرور بذاریم و کنارش هم یه عکس ۱×۱ با یه تک پیکسل شفاف به اسم nothing.png. بعد تو ایمیلی که داریم میفرستیم، این کد html رو درج میکنیم:
<img src="http://example.com/reciept/email-reciept.php?reciept-code" width="1" height="1">
دقت کنید که به جای reciept-code باید یه کدی بذارید که بعدا تو فایل لاگ بشه فهمید این کدوم ایمیل بوده که خونده شده.
نوشتن این تیکه کد واسه خودم بامزه بود بود. ولی از اون مهمتر این بود که زندگی دیجیتال ما ممکنه چقدر راحت تحت نظر قرار بگیره. هیچ دقت کردین این ایمیلهایی که از کمپانیهای مختلف میگیریم چقدر عکس داره؟