2013-07-30 58 views
0

嗨我希望能够附加我的标识每封邮件发送给其他用户或我自己。例如,当你从ebay收到一封电子邮件时,他们会向你发送一封包含他们电子邮件的css格式的电子邮件。我试图将直接图像路径包含到我的徽标中,甚至将图像路径的一部分存储到变量中。这两种方法只是在电子邮件发送时回应出来。最后,我将如何格式化电子邮件,以便在移动应用上显示出来呢? (这真是一个真正的奖励问题,我想我会问)。我的PHP代码如下使用php邮件功能给电子邮件添加徽标

$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 – 2013-07-30 20:53:09

回答

1

要做到这一点你尝试,你需要的方式以指定图像的完整url,例如

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

原因是您在示例中使用的URL是相对的,这意味着它在您调用它的文件中有意义(并指向图像的正确位置),但不在其他地方。

+1

或者您必须将徽标添加为附件并将其内容ID用作url。 – GolezTrol

+0

感谢您的快速回答。这种方法有没有安全问题?在我看来,可能有一些 – NSaid

+0

我想不出任何给你,电子邮件程序看到附件和外部来源的元素作为潜在的安全风险,这就是为什么你经常必须启用或选择查看图像因为它们在默认情况下被禁用。示例安全威胁包括恶意代码。 – JohnnyFaldo

3

您可能还想将图像作为base64。

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

“优势”是你的照片一直不能在服务器上使用。因此,您可以更改路径,用户仍然可以在电子邮件中看到图像。

相关问题