2013-07-30 2 views
0

Привет, я хотел бы иметь возможность прикреплять свой логотип к каждому сообщению, отправленному другим пользователям или к себе. Так, например, когда вы получаете электронное письмо от ebay, они отправляют вам письмо с отформатированным CSS, которое включает в себя их электронную почту. Я попытался включить прямой путь изображения к моему логотипу и даже сохранить часть пути изображения к переменной. Оба метода просто эхом отозвались, когда отправлено электронное письмо. Наконец, как я буду форматировать электронную почту, чтобы она хорошо отображалась и в мобильных приложениях? (это просто действительно бонусный вопрос, который, как я думал, я попрошу). Мой PHP код нижедобавление логотипа в электронную почту с использованием функции php mail

$subject = 'A user is contacting you about your ad titled: '.$_GET['title']; 
       $to = $currUser->getEmailById($currAd->getUserIdByAdId($_GET['id'])); 
       $headers = "From: $email\r\n"; 
       $headers .= "MIME-Version: 1.0\r\n"; 
       $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
       $fullMessage = 
         "<html style=\"height: 100%;\"> 
         <body style=\"height: 100%;\"> 
          <div style=\"min-height: 100%;height: auto !important;height: 100%;margin: 0 auto -63px;\"> 
          <div style=\"min-height: 20px;padding: 19px;margin-bottom: 20px;background-color: #f5f5f5;border: 1px solid #e3e3e3;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);width: 100%;\"><center>$defaultPath</center></div> 
          <div class=\"visitorMessage\"> 
           <table style=\"width: 100%;\"> 
            <tr><th style=\"font-size: 17.5px;text-align:center;\">The following is a message from: $email</th></tr> 
            <tr><td style=\"border:3px solid #000;text-align:center;font-family:Helvetica,Arial,sans-serif; font-size:14px;padding:10px;\">$message</td></tr> 
           </table> 
          </div> 
          <div style=\"min-height:30px;width: 100%;\"></div> 
          </div> 
          <div style=\"margin-left: -20px;margin-right: -20px;padding-left: 20px;padding-right: 20px;min-height: 30px;color: #3C2C02;background: #E99A31;padding: 17px 0 18px 0;border-top: 1px solid #BC4E0F; text-align:center;width: 100%;\"> 
           Don't forget to give us feedback on this buyer by clicking below!<br/> 
           <a style=\"display: inline-block;*display: inline;padding: 4px 12px;margin-bottom: 0;*margin-left: .3em;font-size: 14px;line-height: 20px;color: #333333;text-align: center;text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);vertical-align: middle;cursor: pointer;background-color: #f5f5f5; 
    *background-color: #e6e6e6;background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);background-image: -webkit-gradient(linear, 0 0, 0 100%, ffffff), to(#e6e6e6));background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat: repeat-x;border: 1px solid #cccccc;*border: 0;border-color: #e6e6e6 #e6e6e6 #bfbfbf;border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);border-bottom-color: #b3b3b3;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom: 1;-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); 
    -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);text-decoration:none;\" href=\"www.scoopclassifieds.com/userFeeback.php?email=$email\">Feedback on $email</a><br/> 
      <a style=\"font-sise:10px;text-align:center;\" href=\"www.scoopclassifieds.com\">scoopclassifeds.com</a> 
          </div> 
         </body> 
         </html>"; 
       mail($to,$subject,$fullMessage,$headers); 

код для пути по умолчанию является

$defaultPath = '<img src="/images/scoop3.png" alt="defaultImage" />'; 

и у меня было одно, как

$defaultPath = '<img src="slir/w300-h200-q60//images/scoop3.png" alt="defaultImage" />'; 
+0

гораздо проще прекратить использование почты() и использовать phpmailer или swiftmail –

ответ

1

Чтобы сделать это так, как вы пытаетесь, что вам нужно для указания полного URL-адреса изображения, например

<img src="http://example.com/images/scoop3.png" alt="defaultImage" /> 

Причина, по которой URL-адрес, используемый в вашем примере, является относительным, что означает, что он имеет смысл (и указывает на правильное расположение изображения) в файле, с которого вы его вызываете, но не из другого места.

+1

Или вам нужно добавить логотип в качестве вложения и использовать его идентификатор содержимого в качестве URL-адреса. – GolezTrol

+0

спасибо за быстрый ответ. есть ли какие-либо проблемы с безопасностью с помощью этого метода? мне кажется, что может быть что-то – NSaid

+0

. Я не могу придумать никого для вас, программы электронной почты рассматривают вложения и элементы внешнего источника в электронном письме как потенциальные риски для безопасности, поэтому вам часто приходится включать или выбирать просмотр изображений по электронной почте, поскольку по умолчанию они отключены. Пример угрозы безопасности - это вредоносный код. – JohnnyFaldo

3

Вы также можете поместить изображение в качестве базы64.

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA 
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" /> 

«Преимущество» - ваша фотография должна быть недоступна на сервере все время. Таким образом, вы можете изменить путь, и пользователь все еще может видеть изображение в письме.