我一直试图在我的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";
?>
答案 0 :(得分:1)
这很困惑。你为什么要调用mail()
以及使用PHPMailer?我不知道为什么你认为你需要像这样手动搞乱标题 - 使用像PHPMailer这样的库是这样的,所以你不必担心这样的事情!
如果您设置Body
,PHPMailer将不会对您的图片路径执行任何操作 - 您需要将您的身体传递到msgHTML()
,在那里它会查找图像并将所有内容转换为嵌入图像。
PHPMailer提供的示例向您展示了如何执行此操作(如果不在示例文件夹中,请查看单元测试)。
我也可以看到你的代码是基于一个旧的例子而且可能使用旧版本的PHPMailer,所以我建议你更新到至少5.2.10。