如何从web表单正确设置PHP邮件文本的样式?
我有这个网页联系我的工作,但当发送电子邮件时,它到达纯文本,但我想在顶部添加一个背景和一个组织的标志和样式的文本,以适应网站的平面设计。我一直很难解决这个问题,所以我在这里作为最后的手段 有人有正确的方法来实现这一点吗 这里是一个截图,我是如何试图完成这一点时,通过电子邮件收到。(组织需要在iPhone或mac电子邮件客户端上的邮箱中查看此信息。) 下面是我目前掌握的基本代码,它可以显示纯文本:如何从web表单正确设置PHP邮件文本的样式?,php,html,css,email,contact-form,Php,Html,Css,Email,Contact Form,我有这个网页联系我的工作,但当发送电子邮件时,它到达纯文本,但我想在顶部添加一个背景和一个组织的标志和样式的文本,以适应网站的平面设计。我一直很难解决这个问题,所以我在这里作为最后的手段 有人有正确的方法来实现这一点吗 这里是一个截图,我是如何试图完成这一点时,通过电子邮件收到。(组织需要在iPhone或mac电子邮件客户端上的邮箱中查看此信息。) 下面是我目前掌握的基本代码,它可以显示纯文本: <?php $field_name = $_POST['name']; $field
<?php
$field_name = $_POST['name'];
$field_email = $_POST['email'];
$field_message = $_POST['message'];
header("Location: contact-thanks.php"); ## important redirect page
$mail_to = 'DESIGNATED_EMAIL'; ## Organization's receiving email
$subject = 'Message from an a Visitor '.$field_name;
$body_message = '<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body style="margin:0px; padding:0px; background:#f7f7f7;">
<div style="display:block; margin:auto; width:750px;background:#2C3E50; border-bottom: solid 2px #2C3E50;">
<div style="display:block; width:750px; margin:auto;">
<span style="color:#fff;padding:5px 10px;display:block;font-size:22px;">From: Johny,</span>
</div>
</div>
<div style="width:750px; margin: auto; background:#fff; min-height: 100px;">
<div style="text-align: left;display: block;width: 500px;padding: 50px; padding-bottom:30px;font-size: 14px;color: #666; margin:auto;">
<div style="color:inherit;display:block;width:100%;margin:10px 0;line-height:24px;font-size:18px;color:#333">Hi,</div>
<div style="color:inherit;display:block;width:100%;margin:10px 0;line-height:24px">Thank you for visiting us..<span style="color:#111;font-weight:600;display:block;">This is an example that how we formatted our email in php.</span>
</div>
</div>
<div style="border-top:solid 1px #ddd; text-align:left;font-size:14px;color:#888;padding-top:5px;padding-bottom:2px;padding-left:10px;">© exampleOrganization.org</div>
</div>
</body>
</html>';
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status)
{
echo "Message was sent";
}
else {
echo "ERROR";
}
?>
使用像这样的mailer类试试这个。将内容类型和MIME版本设置为$headers
:
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
mail($mail_to, $subject, $body_message, $headers);
它对我有用:)有关更多信息,请参见要从PHP的邮件
功能发送HTML电子邮件,您需要指定其他标题,即MIME版本、内容类型和字符集
这里有一个供你遵循的原则。您最好使用前面提到的类,因为它抽象了许多更精细的细节。我现在创建了两个独立的网站,一个为我自己,一个为客户?。这两次我都使用PHP发送电子邮件,因为它比PHP中内置的邮件更容易使用
设置起来真的很容易:
$emailTo = $_POST['email']; //Users Email
$name = $_POST['name']; //Users name
$subject = "Welcome to the site new user!";
$message = "
<html>
<head>
<title>Website.com</title>
<head>
<body>
<p>Hey " . $emailTo . ", thank you for visiting this site!
</body>
</html>
";
$mail = new PHPMailer;
$mail->From = 'support@website.com';
$mail->FromName = 'Super Cool Website';
$mail->addAddress($emailTo,$name);
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $message;
$mail->AltBody = str_tags($message);
if ( $mail->send() ) {
echo "Your email was sent!";
} else {
echo "Your email failed to send";
}
$emailTo=$\u POST['email']//用户电子邮件
$name=$_POST['name']//用户名
$subject=“欢迎新用户访问该网站!”;
$message=”
网站
嘿”$电邮至。“,感谢您访问此网站!
";
$mail=新的PHPMailer;
$mail->Fromsupport@website.com';
$mail->FromName='超级酷网站';
$mail->addAddress($emailTo,$name);
$mail->isHTML(true);
$mail->Subject=$Subject;
$mail->Body=$message;
$mail->AltBody=str_标记($message);
如果($mail->send()){
回显“您的电子邮件已发送!”;
}否则{
回显“您的电子邮件发送失败”;
}
这是我通常使用的格式
$to = 'email@email.com';
$subject = 'New email!';
$from = "Your Website Name";
$message = '<html><h1>HTML formatted message in here</h1> </html>';
$headers = "From: $from\r\n";
$headers .= "Content-type: text/html\r\n";
mail($to,$subject,$message,$headers);
$to='1!'email@email.com';
$subject='newemail!';
$from=“您的网站名称”;
$message='HTML格式的消息在此';
$headers=“From:$From\r\n”;
$headers.=“内容类型:text/html\r\n”;
邮件($to、$subject、$message、$headers);
我会试试看,虽然装上它似乎有点乏味,但我今天早些时候做了一个小测试,但它从来没有发送过测试电子邮件,看看它是否有效发送HTML电子邮件可能真的很痛苦,不同的电子邮件阅读器会给你不同的结果。太棒了,我回到工作场所后会尝试。嘿,这看起来很有希望,我必须测试它们中的每一个,直到我得到一个有效的,您可以在其中添加一些图片到样式?是的,您可以将图片添加到您的邮件中,但请确保通过完整的URL引用它们http://website.com/images/image.png
而不是通常的/images/image.png
,因为一旦电子邮件发送给用户,用户客户端上就没有/images/目录。通过阅读示例中的代码,还有一个问题,这更像是从web管理员发送给用户的电子邮件吗?我试图完成的电子邮件类型是,用户进入联系人表单,在其中输入他的姓名、电子邮件和消息,然后发送到管理员的电子邮件,在那里以HTML和一些图像显示。如果您只是希望有一个联系人提交表单,则mail()函数可能不是您想要的。您可以继续使用邮件表单,只需将其设置为$mailTo=admin@website.com';代码>,或设置将表单保存到SQL表的方法。