PHP在HTML电子邮件中嵌入图像

PHP在HTML电子邮件中嵌入图像,php,html,image,email,html-email,Php,Html,Image,Email,Html Email,我可以使用此脚本成功发送普通电子邮件。但是,当我添加代码以在邮件标题顶部显示徽标时,所有内容都会爆炸。我得到一个HTTP错误。我认为这与引号有关 $to = $email; $subject = "My Website Email Confirmation"; $message = " <html> <head> <title>My Website Email Confirmati

我可以使用此脚本成功发送普通电子邮件。但是,当我添加代码以在邮件标题顶部显示徽标时,所有内容都会爆炸。我得到一个HTTP错误。我认为这与引号有关

$to = $email;
    $subject = "My Website Email Confirmation";

    $message = "
    <html>
    <head>
        <title>My Website Email Confirmation</title>
    </head>
    <body>
        <header>
            <img src="https://www.mywebsite.com/images/logo_transparent_background.png" height="70px">
        </header>
        <br>
        <br>
        <p>Welcome to My Website. We are excited to be working with you. Please click here to confirm your email address.
        <br>
        <br>Best regards, <br>Your Team
        </p>
    </body>
    </html>
    ";

    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    $headers .= 'From: <noreply@mywebsite.com>' . "\r\n";

    mail($to,$subject,$message,$headers);
$to=$email;
$subject=“我的网站电子邮件确认”;
$message=”
我的网站电子邮件确认


欢迎访问我的网站。我们很高兴能与您合作。请单击此处确认您的电子邮件地址。

向您的团队致意

"; $headers=“MIME版本:1.0”。“\r\n”; $headers.=“内容类型:text/html;字符集=UTF-8”。“\r\n”; $headers.='From:'。“\r\n”; 邮件($to、$subject、$message、$headers);
我最终使用了PHPMailer。虽然一开始有点混乱,但最终效果很好。我不是每天都用这个东西,所以我需要花一分钟的时间来用它。我跟踪了几段YouTube视频才到达那里。它需要安装在我的web服务器上:

然后澄清了几个编码问题,特别是与图像相关的问题:

在(1)将其安装到web服务器和(2)使用上述资源更好地理解代码后,此代码对我有效:

require "phpmailertesting/PHPMailer/PHPMailerAutoload.php";

function smtpmailer($to, $from, $from_name, $subject, $body)
{
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; 
    $mail->SMTPSecure = 'ssl'; 
$mail->Host = 'mail.mywebsite.com';
$mail->Port = 465;  
$mail->Username = 'autoreply@ mywebsite.com';
$mail->Password = '##############';

$mail->AddEmbeddedImage('images/logo_transparent_background.png', 'logoimg');

$mail->IsHTML(true);
$mail->From="autoreply@ mywebsite.com";
$mail->FromName=$from_name;
$mail->Sender=$from;
$mail->AddReplyTo($from, $from_name);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress($to);
    if(!$mail->Send())
    {
                $error ="Please try Later, Error Occured while Processing...";
                return $error; 
            }
            else 
            {
                $error = "Thanks You !! Your email is sent.";  
                return $error;
            }
    }
    
$to   = $email;
$from = 'autoreply@ mywebsite.com';
$name = 'My Website';
$subj = 'My Website Email Confirmation';
$msg = '<h1><img src=cid:logoimg height="70px"></h1><br>'
.'<p>Greetings, we are looking forward to working with you!"</p><br>'
.'<p>Please <a href="https://www. mywebsite.com/validateemail.php">click here</a> to validate your email address.</p><br>'
.'<p>Once that is complete, we are ready to start your customized plan!</p><br>'
.'<p>Or, you can <a href="https://www. mywebsite.com/signin.php">sign-in</a> here once confirmed.<br>'
.'<p>Best regards,</p><br>'
    .'<p>Your Team</p><br>';

$error=smtpmailer($to,$from, $name ,$subj, $msg);
要求“phpmailertesting/PHPMailer/phpmailerautoad.php”;
函数smtpmailer($to、$from、$from_name、$subject、$body)
{
$mail=new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth=true;
$mail->SMTPSecure='ssl';
$mail->Host='mail.mywebsite.com';
$mail->Port=465;
$mail->Username='autoreply@mywebsite.com';
$mail->Password='';
$mail->AddEmbeddedImage('images/logo_transparent_background.png','logoimg');
$mail->IsHTML(true);
$mail->From=“autoreply@mywebsite.com”;
$mail->FromName=$from\u name;
$mail->Sender=$from;
$mail->AddReplyTo($from,$from_name);
$mail->Subject=$Subject;
$mail->Body=$Body;
$mail->AddAddress($to);
如果(!$mail->Send())
{
$error=“请稍后再试,处理时出错…”;
返回$error;
}
其他的
{
$error=“谢谢!!您的电子邮件已发送。”;
返回$error;
}
}
$to=$email;
$from='autoreply@mywebsite.com';
$name=‘我的网站’;
$subc='我的网站电子邮件确认';
$msg='
' 您好,我们期待着与您合作!“


” “请验证您的电子邮件地址。


” 完成后,我们就可以开始您的定制计划了!


' .或者,您可以在这里确认。
' “致以最良好的问候,


” “你的团队


”; $error=smtpmailer($to、$from、$name、$SUB、$msg);
请在同一行中编写HTML代码进行测试,并在打开和关闭的双引号中使用单引号。是的,暂时忽略电子邮件,让
$message
成为一个有效的PHP变量,保存有效的HTMLLOR查看HEREDOC语法:只需一条旁注,查看一下,这会让事情变得更简单。正如其他人所说,但是perhaps不清楚,src=“中的双引号正在破坏代码。使用src=',而不是src=“”。或者,如果您觉得更简单,可以使用$message='..';(单引号),然后可以在$message中继续使用双引号。