درج تصویر در ایمیل HTML بصورت Embedded

من الان این دو روش رو امتحان کردم که کار کردن:

روش اول:

<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');

echo 1;

$str = '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACR0lEQVRYha1XvU4bQRD+bF/JjzEnpUDwCPROywPgB4h0PUWkFEkLposUIYyEU4N5AEpewnkDCiQcjBQpWLiLjk3DrnZnZ3buTv4ae25mZ+Z2Zr7daxljDGpg++Mv978Y5Nhc6+Di5tk9u7/bR3cjY9eOJnMUh3mg5y0roBjk+PF1F+1WCwCCJKTgpz9/ozjMg+ftVQQ/PtrB508f1OAcau8ADW5xfLRTOzgAZMPxTNy+YpDj6vaPGtxPgvpL7QwAtKXts8GqBveT8P1p5YF5x8nlo+n1p6bXn5ov3x9M+fZmjDGRXBXWH5X/Lv4FdqCLaLAmwX1/VKYJtIwJeYDO+dm3PSePJnO8vJbJhqN62hOUJ8QpoD1Au5kmIentr9TobAK04RyJEOazzjV9KokogVRwjvm6652kniYRJUBrTkft5bUEAGyuddzz7noHALBYls5O09skaE+4HdAYruobUz1FVI6qcy7xRFW95A915pzjiTp6zj7za6fB1lay1/Ssfa8/jRiLw/n1k9tizl7TS/aZ3xDakdqUByR/gDcF0qJV8QAXHACy+7v9wGA4ngWLVskDo8kcg4Ot8FpGa8PV0I7MyeWjq53f7Zrer3nyOLYJpJJowgN+g9IExNNQ4vLFskwyJtVrd8JoB7g3b4rz66dIpv7UHqg611xw/0om8QT7XXBx84zheCbKGui2U9n3p/YAlSVyqRqc+kt+mCyWJTSeoMGjOQciOQDXA6kjVTsL6JhpYHtA+wihPaGOWgLqnVACPQua4j8NK7bPLP4+qQAAAABJRU5ErkJggg==" width="32" height="32">';

$to = "he@example.com";
$subject = "HTML email";

$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>".$str."
</body>
</html>
";

// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

// More headers

mail($to,$subject,$message, $headers);

echo 2;

?>

روش دوم:

<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');

echo 1;

$str = 'This is a MIME-encoded message. If you are seeing this, your mail
reader is old.
--outer-boundary
Content-Type: text/plain; charset=us-ascii

This message might make you happy or it might make you sad

--outer-boundary
MIME-Version: 1.0
Content-Type: multipart/related; type="text/html"; start="<body@here>"; boundary="inner-boundary"

--inner-boundary
Content-Type: text/html; charset=us-ascii
Content-Disposition: inline
Content-ID: <body@here>

<html>
<body>
This message might make you
<img src="cid:smile@here" alt="smile">
or it might make you
<img src="cid:frown@here" alt="frown">
</body>
</html>

--inner-boundary
Content-Type: image/gif
Content-Disposition: inline
Content-Transfer-Encoding: base64
Content-ID: <smile@here>

R0lGODlhEAAQAKEBAAAAAP//AP//AP//ACH5BAEKAAIALAAAAAAQABAAAAIzlA2px6IBw2
IpWglOvTahDgGdI0ZlGW5meKlci6JrasrqkypxJr8S0oNpgqkGLtcY6hoFADs=

--inner-boundary
Content-Type: image/gif
Content-Disposition: inline
Content-Transfer-Encoding: base64
Content-ID: <frown@here>

R0lGODlhEAAQAKEBAAAAAAD//wD//wD//yH5BAEKAAIALAAAAAAQABAAAAIzlA2px6IBw2
IpWglOvTahDgGdI0ZlGW5meKlci75drDzm5uLZyZ1I3Mv8ZB5Krtgg1RoFADs=

--inner-boundary--

--outer-boundary--';

$to = "he@example.com";
$subject = "HTML email";

$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>".$str."
</body>
</html>
";

// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= 'Content-type: multipart/alternative; boundary="outer-boundary"' . "\r\n";

// More headers

mail($to,$subject,$message, $headers);

echo 2;

?>

حالا نمیدونم کدوم برای ایمیل بهتره. منظورم از نظر استاندارد بودن و محدودیت ها (مثلا محدودیت حجم تصویر) و ساپورت بیشتره.
گفتم فعلا تا اینجا تحقیقات و تستهایی که انجام دادم رو ثبت کنم (شاید بعدا خودمم دنبالش بگردم!!).

ضمناً توجه داشته باشید که کلا ایمیل های HTML ممکنه در مواردی به دلایل امنیتی پاکسازی بشن، تصویرها بصورت پیشفرض نشون داده نشن، و حتی ممکنه وجود تصویرهای زیاد یا حجیم در ایمیل باعث افزایش امتیاز اونها برای تشخیص داده شدن بعنوان اسپم بشه.

اگر خواستید فایلهای دیگر مثل فایل فلش، ویدئو، صدا و غیره رو هم در ایمیل Embed کنید فکر کنم با همین روشها بشه، ولی در خیلی موارد اینطور فایلها/تگها ممکنه توسط سرویسهای ایمیل یا نرم افزارهای کلاینت ایمیل، بخاطر مسائل امنیتی فیلتر بشن.

1 دیدگاه در “درج تصویر در ایمیل HTML بصورت Embedded

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>