3

我在使用 css 和 php 邮件功能时遇到问题,我无法弄清楚为什么样式表的某些部分不起作用。

这是我的 php 函数,它将电子邮件发送给用户:

    <?php
require 'dbconnection.php';

//Testing variables
$name = "laerte";
$email = "someemail@gmail.com";
$title = "Some Project";
$desc = " Some description";

//adds project to MYSQL database
//The function returns uniqid generated
$id = addProject($title,$desc,$name);

$subject = "Project: ".$title;
$header  = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$header .= "From: pixelgraphy.net";
$message = "<html>
    <head>
    <style>
        body
        {
            width: 700px;
            height: auto;
        }
        h1
        {
            background-color: blue;
            color:white;
            margin-top: 5px;
            margin-bottom: 5px;
            text-align:center;
        }
        #message
        {
            width: 500px;
            height: auto;
            margin-bottom: 5px;
            margin-left: auto;
            margin-right: auto;
        }
        #sign
        {
            background-color: blue;
            color: white;
            margin-top: 5px;
            margin-bottom: 5px;
            text-align: center;
        }
    </style>
    </head>
    <body>
        <h1>Request For Feedback</h1>
        <div id = 'message'>

            <p>".$name."  , thank you for submting your idea  The project <b> ".  
            $title." </b> has been added to RFF's view list </p>  
            <a href ='www.pixelgraphy.net/assignment8/getcomments.php?id=".$id."   
            '>Click here</a> to view RFF's list of projects 
        </div>
        <div id = 'sign'> Sinceraly, Anthony Paveglio & Laerte Sousa </div> 
    </body>
                </html>";

    //sends the email           
    mail($email,$subject,$message,$header);

    ?>

如果我将 $message 回显到页面,一切都很好:

不再可用。

但是发送到我的电子邮件的消息是这样的:

不再可用。

由于某种原因,标题后的所有样式都不起作用,我不知道为什么。任何帮助或提示将不胜感激。

4

3 回答 3

5

如果你想创建 HTML 邮件,你需要忘记你所知道的关于常规网页设计的一切。大多数网络邮件服务,包括 Gmail(您似乎正在使用)对所有 HTML 应用严格的过滤,如果您做任何他们可能不赞成的事情,它们会公然删除所有内容。

首先,上次我检查时,Gmail 根本不支持 style-tags,事实上,仅仅包含 head 或 body 标签可能会破坏一切。最好的方法是根本不使用任何 CSS,而依赖 90 年代良好的旧表格布局。如果你真的必须使用 CSS,你需要内联它。

此外,您应该创建一些 Outlook.com、yahoo.com 和 icloud.com 帐户,以确保您至少涵盖最常见的网络邮件服务。以我的经验,iCloud 是其中最容易编写代码的,因为它只是在 iframe 中显示邮件,几乎没有(如果有的话)格式。

最后,虽然没有实际测试就无法确定,但我注意到 Gmail 有时不喜欢带有 color:white 的文本以及带有 color:black 的 a-tags。不过,将颜色分别设置为#EFEFEF 或#010101 可能会解决这个问题。

于 2013-10-29T17:09:14.330 回答
2

将您的样式从ID更改为CLASS。ID 有时会更改。

例如:

    .message
    {
        width: 500px;
        height: auto;
        margin-bottom: 5px;
        margin-left: auto;
        margin-right: auto;
    }
    .sign
    {
        background-color: blue;
        color: white;
        margin-top: 5px;
        margin-bottom: 5px;
        text-align: center;
    }

然后你显然改变了

<div id="message">

<div class="message">
于 2013-10-29T16:46:50.187 回答
1

我认为这是更好和有用的方法:

<div id="message" style="background-color: blue !important;color: white !important;">

如您所知,!important忽略另一种样式规则。

于 2013-10-29T16:49:45.767 回答