webrivers - 无法使用php从电子邮件接收内嵌图像

时间:2016-12-07 12:11:58

标签: php html5

我正在尝试使用php邮件检索电子邮件,但我无法收到内联图片。我能够收到文字,但没有收到图片。

以下是我尝试过的代码:

<?php
$emailAddress = "domain@domian.com"; 
$emailPassword = "password";
$domainURL = 'domian.com';
$useHTTPS = true;
$inbox = imap_open('{'.$domainURL.':143/notls}INBOX',$emailAddress,$emailPassword) or die('Cannot connect to domain:' . imap_last_error());
$emails = imap_search($inbox,'UNSEEN');
if($emails) {
rsort($emails);
foreach($emails as $email_number) {
$overview = imap_fetch_overview($inbox,$email_number,0);
$header = imap_headerinfo($inbox, $email_number);
echo $subject_other= $overview[0]->subject;
echo $sender_name_other= $overview[0]->from;
echo $date_other=$overview[0]->date;
echo $msg_to_other=$overview[0]->to;
echo $msg_from_other = $header->from[0]->mailbox . "@" . $header->from[0]->host;
$message = imap_fetchbody($inbox, $email_number, 2);
echo $message;
}
} 
imap_close($inbox);
?>

只接收文字邮件,无法接收内嵌图片如何修复它...请帮助我......

3 个答案:

答案 0 :(得分:1)

@Thiyaga rajan似乎你的图片是作为附件发送的。使用 Base64_encryption 这可能适用于您的情况。

答案 1 :(得分:0)

您需要指定用于通过邮件发送图像的标题。

答案 2 :(得分:0)

您无法在文字/普通电子邮件上显示图片,如上所示。您必须以text / html格式发送。

所以你首先必须像这样扩展你的标题:

$header = "From: $noreply@intaxfin.com\nMIME-Version: 1.0\nContent-Type: text/html; charset=utf-8\n";

然后,您必须使用html标记\n甚至<br>

更新替换<p>或换行符的mailcontent

然后,您还可以添加包含要在电子邮件中显示的图像的图像标记

<img src="http://www.yourserver.com/myimages/image1.jpg">

当收件人打开它时,将从您的网络服务器下载。

但更好的方法是使用phpMailer Class

使用此功能,您可以在电子邮件中包含任何图像,而无需从任何网站下载。它易于学习,绝对可定制。

顺便说一下:你应该为你的$ body和$ body2值使用引号......

$body= "<<<EOD
Contact Form Details of $nameFeild

Name: $nameFeild \n
City: $cityFeild \n
Country: $countryFeild \n"