如何使用HTML向传出的PHP电子邮件添加.png?

时间:2015-07-01 19:49:06

标签: php png sendmail html-email phpmailer

我一直试图在我的php电子邮件中添加一个png很长一段时间没有运气。我尝试了传统方法,并尝试使用此网站{+ 3}}

将Base64添加到html和css中

但无论我做什么,我都会得到一个空头。任何人都可以一步一步地告诉我,我必须做些什么才能在我发送的电子邮件中显示png,而不是它不能成为附件。 先谢谢。

 <?php

// $email and $message are the data that is being
// posted to this page from our html contact form
$email = $_REQUEST['email'] ;

$mail2 = new PHPMailer();

// set mailer to use SMTP
$mail2->IsSMTP();

// As this email.php script lives on the same server as our email server
// we are setting the HOST to localhost
$mail2->Host = "smtp.comcast.net"; // specify main and backup server

$mail2->SMTPAuth = true; // turn on SMTP authentication

// When sending email using PHPMailer, you need to send from a valid email address
// In this case, we setup a test email account with the following credentials:
// email: send_from_name@comcast.net
// pass: password
$mail2->Username = "name@comcast.net"; // SMTP username
$mail2->Password = "*******"; // SMTP password
$mail2->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$mail2->Port = 465;                                    // TCP port to connect to


// $email is the user's email address the specified
// on our contact us page. We set this variable at
// the top of this page with:
// $email = $_REQUEST['email'] ;
//$mail2->From = 'user@gmail.com';


//Set who the message is to be sent from
$mail2->setFrom('user@gmail.com', 'user');


// below we want to set the email address we will be sending our email to.
$mail2->AddAddress("$email");

//Set an alternative reply-to address
$mail2->addReplyTo('talk@gmail.com');


// below we want to set the email address we will be sending our email to.
//$mail2->AddAddress("$email");

// set word wrap to 50 characters
$mail2->WordWrap = 50;
// set email format to HTML
$mail2->IsHTML(true);

mail($to, $subject, $message, $headers);

$mail2->Subject = "Thanks";


$headers = "From: " . strip_tags($_POST['user@gmail.com']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['talk@gmail.com']) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";


$message = '<html><body>';

$message .= '<div style="height:130px; text-align:center; width:100%; background:#666;"> <img src="images/logo.png"/></div>';

$message .= '<p>Welcome,</p> ';
$message .= "<p>You have been added</p>";


$message .= "</body></html>";

// $message is the user's message they typed in
// on our contact us page. We set this variable at
// the top of this page with:
// $message = $_REQUEST['message'] ;
$mail2->Body = $message;
$mail2->AltBody = $message;

if(!$mail2->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail2->ErrorInfo;
exit;
}

echo "Message has been sent";

?>

1 个答案:

答案 0 :(得分:1)

这很困惑。你为什么要调用mail()以及使用PHPMailer?我不知道为什么你认为你需要像这样手动搞乱标题 - 使用像PHPMailer这样的库是这样的,所以你不必担心这样的事情!

如果您设置Body,PHPMailer将不会对您的图片路径执行任何操作 - 您需要将您的身体传递到msgHTML(),在那里它会查找图像并将所有内容转换为嵌入图像。

PHPMailer提供的示例向您展示了如何执行此操作(如果不在示例文件夹中,请查看单元测试)。

我也可以看到你的代码是基于一个旧的例子而且可能使用旧版本的PHPMailer,所以我建议你更新到至少5.2.10。