无法查看已发送电子邮件中的图像 PHP、JQuery
Can't view image in Email sent PHP, JQuery
我有一个 child window 和 table。当我单击一行(带有按钮 select)时,文本已成功传输到打开器或 parent window。我想使用 php's/sendmail 的 函数:mail() 发送与我的文本内联的图像。仅发送带有文本的电子邮件是成功的。
发送的电子邮件采用 html 格式,因此我可以更改内容的外观(粗体字母、斜体等)
但是当我发送带有图像的电子邮件时,我无法在我的电子邮件中看到它。如何解决?或者如何发送带有内联图像的电子邮件?我的代码在这里:
JQUERY:
$(document).ready(function(){
$('#products-table .selectbtn').click(function() {
var td = $(this).closest('tr');
var f;
var s;
var t;
var q;
var w;
$(td).each(function(){
f = $(this).find(".class").html();
s = $(this).find(".brand").html();
t = $(this).find(".model").html();
q = $(this).find(".price").html();
w = $(this).find(".terms").html();
g = $(this).find(".img").html();
});
var x = 'Class: ' + f + '\n' + 'Brand: ' + s + '\n' + 'Model: ' + t + '\n' + 'Price: ' + q + '\n' + 'Terms: ' + w;
var z = g + '<br/>' + '<b>Class:</b> ' + f + '<br/>\n' + '<b>Brand: </b>' + s + '<br/>\n' + '<b>Model: </b>' + t + '<br/>\n' + '<b>Price: </b>' + q + '<br/>\n' + '<b>Terms: </b>' + w;
opener.document.motorappform.productdesc.value = x;
opener.document.motorappform.productdeschidden.value = z;
self.close();
});
});
z 变量将作为 mail() 参数的消息发送到我的电子邮件中(即已经是 html 格式,所以我对此没有问题)。 g 的值类似于:
<img src = "folder/image.png"></img>
这些是我的 php 代码:
<?php
$fullname = $_POST["fname"].' '.$_POST["mname"].' '.$_POST["lname"];
$contact = $_POST["contact"];
$category = $_POST["finance-type"];
$location = $_POST["city"].', '.$_POST["province"];
$senderemail = $_POST["email"];
$birthday = $_POST["month"].' '.$_POST["dd"].', '.$_POST["yyyy"];
$productdesc =$_POST["productdeschidden"];
$subject = "Loan Application";
$email;
$message;
if($category == "Motorcycle Financing")
{
$email = "email@email.com";
$message = "<html><head></head><body><b>Service Type:</b> ".$category."<br/> <br/>"."<b>Name:</b> ".$fullname."<br/>"."<b>Birthdate:</b> ".$birthday."<br/>"."<b>Location: </b>".$location."<br/>"." <b>Contact No: </b>".$contact."<br/>"."<b>Email:</b> ".$senderemail."<br/> <br/>"."<b>Requested motorcycle to loan</b><br/>".$productdesc."<br/> <br/>"."<b>Message:</b> <br/>".$_POST["message"]." </body></html>";
}
else if ($category == "RX Cash Line")
{
$email = "email@email.com";
$message = "<html><head></head><body><b>Service Type:</b> ".$category."<br/> <br/>"."<b>Name:</b> ".$fullname."<br/>"."<b>Birthdate:</b> ".$birthday."<br/>"."<b>Location: </b>".$location."<br/>"." <b>Contact No: </b>".$contact."<br/>"."<b>Email:</b> ".$senderemail."<br/> <br/>"."<b>Message:</b> <br/>".$_POST["message"]."</body></html>";
}
else if ($category == "MFC Factors")
{
$email = "email@email.com";
$message = "<html><head></head><body><b>Service Type:</b> ".$category."<br/> <br/>"."<b>Name:</b> ".$fullname."<br/>"."<b>Birthdate:</b> ".$birthday."<br/>"."<b>Location: </b>".$location."<br/>"."<b>Contact No: </b>".$contact."<br/>"."<b>Email:</b> ".$senderemail."<br/> <br/>"."<b>Message:</b> <br/>".$_POST["message"]."</body></html>";
}
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: MFC Website". "\r\n";
$headers .= 'Cc: email@email.com' . "\r\n";
if (mail($email, $subject, $message, $headers))
{
echo '
<script>
alert ("Message Sent!");
window.location.href = "index.html";
</script>
';
}
else
{
echo '
<script>
alert ("Failed to send message");
window.location.href = "index.html";
</script>
';
}
?>
除了发送的图像,一切正常。我没有看到确切的图像,我只在我的电子邮件中看到一个带有裂纹的图标。我怎样才能解决这个问题?谢谢!
您必须使用网站的完整路径,包括 http://mydomain[dot]com/folder/image.png
当想要在电子邮件中显示图像时,需要完整的网址 http://
这是我从您的代码中提取的一行中的一个示例:
$message = "<html><head></head><body><b>Service Type:</b> ".$category."<br/> <br/>"."<b>Name:</b> ".$fullname."<br/>"."<b>Birthdate:</b> ".$birthday."<br/>"."<b>Location: </b>".$location."<br/>"." <b>Contact No: </b>".$contact."<br/>"."<b>Email:</b> ".$senderemail."<br/> <br/>"."<b>Requested motorcycle to loan</b><br/>" . "<img src=\"http://www.yourSite.com/folder/$productdesc\">" . "<br/> <br/>"."<b>Message:</b> <br/>".$_POST["message"]." </body></html>";
注意:
. "<img src=\"http://www.yourSite.com/folder/$productdesc\">" .
这假设您的 POST 将呈现如下内容:
$productdesc = "image.png";
我有一个 child window 和 table。当我单击一行(带有按钮 select)时,文本已成功传输到打开器或 parent window。我想使用 php's/sendmail 的 函数:mail() 发送与我的文本内联的图像。仅发送带有文本的电子邮件是成功的。 发送的电子邮件采用 html 格式,因此我可以更改内容的外观(粗体字母、斜体等) 但是当我发送带有图像的电子邮件时,我无法在我的电子邮件中看到它。如何解决?或者如何发送带有内联图像的电子邮件?我的代码在这里:
JQUERY:
$(document).ready(function(){
$('#products-table .selectbtn').click(function() {
var td = $(this).closest('tr');
var f;
var s;
var t;
var q;
var w;
$(td).each(function(){
f = $(this).find(".class").html();
s = $(this).find(".brand").html();
t = $(this).find(".model").html();
q = $(this).find(".price").html();
w = $(this).find(".terms").html();
g = $(this).find(".img").html();
});
var x = 'Class: ' + f + '\n' + 'Brand: ' + s + '\n' + 'Model: ' + t + '\n' + 'Price: ' + q + '\n' + 'Terms: ' + w;
var z = g + '<br/>' + '<b>Class:</b> ' + f + '<br/>\n' + '<b>Brand: </b>' + s + '<br/>\n' + '<b>Model: </b>' + t + '<br/>\n' + '<b>Price: </b>' + q + '<br/>\n' + '<b>Terms: </b>' + w;
opener.document.motorappform.productdesc.value = x;
opener.document.motorappform.productdeschidden.value = z;
self.close();
});
});
z 变量将作为 mail() 参数的消息发送到我的电子邮件中(即已经是 html 格式,所以我对此没有问题)。 g 的值类似于:
<img src = "folder/image.png"></img>
这些是我的 php 代码:
<?php
$fullname = $_POST["fname"].' '.$_POST["mname"].' '.$_POST["lname"];
$contact = $_POST["contact"];
$category = $_POST["finance-type"];
$location = $_POST["city"].', '.$_POST["province"];
$senderemail = $_POST["email"];
$birthday = $_POST["month"].' '.$_POST["dd"].', '.$_POST["yyyy"];
$productdesc =$_POST["productdeschidden"];
$subject = "Loan Application";
$email;
$message;
if($category == "Motorcycle Financing")
{
$email = "email@email.com";
$message = "<html><head></head><body><b>Service Type:</b> ".$category."<br/> <br/>"."<b>Name:</b> ".$fullname."<br/>"."<b>Birthdate:</b> ".$birthday."<br/>"."<b>Location: </b>".$location."<br/>"." <b>Contact No: </b>".$contact."<br/>"."<b>Email:</b> ".$senderemail."<br/> <br/>"."<b>Requested motorcycle to loan</b><br/>".$productdesc."<br/> <br/>"."<b>Message:</b> <br/>".$_POST["message"]." </body></html>";
}
else if ($category == "RX Cash Line")
{
$email = "email@email.com";
$message = "<html><head></head><body><b>Service Type:</b> ".$category."<br/> <br/>"."<b>Name:</b> ".$fullname."<br/>"."<b>Birthdate:</b> ".$birthday."<br/>"."<b>Location: </b>".$location."<br/>"." <b>Contact No: </b>".$contact."<br/>"."<b>Email:</b> ".$senderemail."<br/> <br/>"."<b>Message:</b> <br/>".$_POST["message"]."</body></html>";
}
else if ($category == "MFC Factors")
{
$email = "email@email.com";
$message = "<html><head></head><body><b>Service Type:</b> ".$category."<br/> <br/>"."<b>Name:</b> ".$fullname."<br/>"."<b>Birthdate:</b> ".$birthday."<br/>"."<b>Location: </b>".$location."<br/>"."<b>Contact No: </b>".$contact."<br/>"."<b>Email:</b> ".$senderemail."<br/> <br/>"."<b>Message:</b> <br/>".$_POST["message"]."</body></html>";
}
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: MFC Website". "\r\n";
$headers .= 'Cc: email@email.com' . "\r\n";
if (mail($email, $subject, $message, $headers))
{
echo '
<script>
alert ("Message Sent!");
window.location.href = "index.html";
</script>
';
}
else
{
echo '
<script>
alert ("Failed to send message");
window.location.href = "index.html";
</script>
';
}
?>
除了发送的图像,一切正常。我没有看到确切的图像,我只在我的电子邮件中看到一个带有裂纹的图标。我怎样才能解决这个问题?谢谢!
您必须使用网站的完整路径,包括 http://mydomain[dot]com/folder/image.png
当想要在电子邮件中显示图像时,需要完整的网址 http://
这是我从您的代码中提取的一行中的一个示例:
$message = "<html><head></head><body><b>Service Type:</b> ".$category."<br/> <br/>"."<b>Name:</b> ".$fullname."<br/>"."<b>Birthdate:</b> ".$birthday."<br/>"."<b>Location: </b>".$location."<br/>"." <b>Contact No: </b>".$contact."<br/>"."<b>Email:</b> ".$senderemail."<br/> <br/>"."<b>Requested motorcycle to loan</b><br/>" . "<img src=\"http://www.yourSite.com/folder/$productdesc\">" . "<br/> <br/>"."<b>Message:</b> <br/>".$_POST["message"]." </body></html>";
注意:
. "<img src=\"http://www.yourSite.com/folder/$productdesc\">" .
这假设您的 POST 将呈现如下内容:
$productdesc = "image.png";