繁体   English   中英

带有AngularJS的PHP emailer中的链接断开

[英]Broken links inside PHP emailer with AngularJS

我有一个AngularJS应用程序,该应用程序使用PHP文档发送电子邮件。 电子邮件正文包含两个指向用JS变量填充的图像的链接。

大部分电子邮件到达时状态良好,并且链接有效,但是在其中一些中,链接(无论是其中一个还是其中一个)都会断开,看起来像这样:

https://blabla.com/register/uploads/Frankfurt2018-22-03-2018-16-07-52.!

或像这样:

https://blabla.com/register/uploads/KoelnerListe2%21

或像这样:

https://blabla.com/register/upload!

有时是两个链接,有时只是一个链接,而且大多数时候都是正确的,这很奇怪。

link变量来自Angular应用,如下所示:

$scope.sendapplication = function(){

  $scope.photoor = "https://blabla.com/register/uploads/"+$scope.photoor;
  $scope.photosmall = "https://blabla.com/register/uploads/"+$scope.photo;

  $scope.exhibitor = {
    'img':$scope.photosmall,
    'imgoriginal':$scope.photoor,
  };

  var $promise=$http.post('emailtest.php',$scope.exhibitor); 

  $promise.then(function (data) {
    ...
  });

};

并在php文件中,我这样做:

$contentType = explode(';', $_SERVER['CONTENT_TYPE']); // Check all available Content-Type
$rawBody = file_get_contents("php://input"); // Read body

$data = array(); // Initialize default data array

if(in_array('application/json', $contentType)) { 
  $data = json_decode($rawBody); // Then decode it
  $photo = $data->img;
  $photooriginal = $data->imgoriginal;
} else {
  parse_str($data, $data); // If not JSON, just do same as PHP default method
}

header('Content-Type: application/json; charset=UTF-8');
echo json_encode(array( // Return data
  'data' => $data
));

$sabine = 'blabla@gmail.com';

$headerss = "From: ".$galleryname."<".$email.">\r\nReturn-path: ".$email."";
$headerss .= "Reply-To: ".$galleryname."<".$email.">";
$headerss .= "MIME-Version: 1.0\r\n";
$headerss .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$recipient = $sabine;

$subjects = "Registration for ".$fairumlaut." - ".$galleryname.""; 
$bodys .= "<p><strong>Original photo</strong>: <a href=".$photooriginal.">Link</a></p>";
$bodys .= "<p><strong>Web resized photo</strong>: <a href=".$photo.">Link</a></p>";
$bodys .= "<p></p>";

mail($recipient, $subjects, $bodys, $headerss);

什么会导致这种奇怪的行为?

将链接包装在urlencode函数中。 这样可以解决您的问题。

更新:或者,如果我阅读了您的代码,我会发现链接来自JS。 尝试encodeURI()..;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM