【问题标题】:how to insert html, css and php in mail function in php如何在php的邮件功能中插入html、css和php
【发布时间】:2024-05-29 14:40:02
【问题描述】:

当我的编码太长并且电子邮件中有“php”功能时,我很困惑使用此功能。你能给我一个例子吗?我想根据我创建的这个代码发送一封电子邮件到 * end

  <!doctype html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>Wherco</title>


        <!-- Latest compiled and minified css -->
           <link rel="stylesheet" href="../view/css/bootstrap.min.css">
        <!-- optional theme-->
           <link rel="stylesheet" href="../view/css/bootstrap-theme.min.css">
        <!--my custom css-->
           <link rel="stylesheet" href="../view/css/style.css">
        <!--font-awesome-->
           <link rel="stylesheet" href="../view/font-awesome/css/font-awesome.min.css">

        <style>
        .invoice-box{
            max-width:800px;
            margin:auto;
            padding:30px;
            border:1px solid #eee;
            box-shadow:0 0 10px rgba(0, 0, 0, .15);
            font-size:16px;
            line-height:24px;
            font-family:'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif;
            color:#555;
        }

        .invoice-box table{
            width:100%;
            line-height:inherit;
            text-align:left;
        }

        .invoice-box table td{
            padding:5px;
            vertical-align:top;
        }

        .invoice-box table tr td:nth-child(2){
            text-align:right;
        }

        .invoice-box table tr.top table td{
            padding-bottom:20px;
        }

        .invoice-box table tr.top table td.title{
            font-size:45px;
            line-height:45px;
            color:#333;
        }

        .invoice-box table tr.information table td{
            padding-bottom:40px;
        }

        .invoice-box table tr.heading td{
            background:#eee;
            border-bottom:1px solid #ddd;
            font-weight:bold;
        }

        .invoice-box table tr.details td{
            padding-bottom:20px;
        }

        .invoice-box table tr.item td{
            border-bottom:1px solid #eee;
        }

        .invoice-box table tr.item.last td{
            border-bottom:none;
        }

        .invoice-box table tr.total td:nth-child(2){
            border-top:2px solid #eee;
            font-weight:bold;
        }

        @media only screen and (max-width: 600px) {
            .invoice-box table tr.top table td{
                width:100%;
                display:block;
                text-align:center;
            }

            .invoice-box table tr.information table td{
                width:100%;
                display:block;
                text-align:center;
            }
        }
        </style>
    </head>

    <?php $result = tampil_per_id_order($_GET['id']);
    while($row = mysqli_fetch_assoc($result)) { ?>

    <body>
        <div class="invoice-box">
            <table cellpadding="0" cellspacing="0">
                <tr class="top">
                    <td colspan="2">
                        <table>
                            <tr>
                                <td class="title">
                                    <h7> Wherco </h7>
                                </td>

                                <td>
                                    Invoice order #: <?php echo $row['id_order']?><br>
                                    Created: <?php echo date("Y-m-d"); ?><br>
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>

                <tr class="information">
                    <td colspan="2">
                        <table>
                            <tr>
                                <td>
                                    Wherco.<br>
                                    12345 Seminyak<br>
                                    -
                                </td>

                                <td>
                                    <?php echo $row['username']?><br>
                                      <?php echo $row['email']?><br>
                                      <?php echo $row['telp']?>
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>

                <tr class="heading">
                    <td>
                        Deskripsi Project
                    </td>

                    <td>
                        Tanggal Transfer
                    </td>
                </tr>

                <tr class="details">
                    <td>
                          <?php echo $row['deskripsi']?>
                    </td>

                    <td>
                      <?php echo $row['tanggal_konfirmasi']?>
                    </td>
                </tr>

                <tr class="heading">
                    <td>
                        Jenis Package
                    </td>

                    <td>
                        Biaya
                    </td>
                </tr>

                <tr class="item">
                    <td>
                      <?php echo $row['jenis_package']?>
                    </td>

                    <td>
                        Rp.<?php echo number_format($row['jumlah_transfer']); ?>
                    </td>
                </tr>



                <tr class="item last">
                    <td>

                    </td>

                    <td>

                    </td>
                </tr>

                <tr class="total">
                    <td>Total</td>

                    <td>
                      Rp.<?php echo number_format($row['jumlah_transfer']); ?> <br> <br>
                  <form class="" action="" method="post">
                      <div class="btn-group" role="group" aria-label="...">
                          <button type="submit" class="btn btn-success">Kirim Email</button>
                      </div>
                </form>
                    </td>
                </tr>
            </table>
        </div>
    </body>
      <?php }?>
    </html>

【问题讨论】:

    标签: php html css email


    【解决方案1】:

    您可以在输出缓冲区的帮助下执行此操作,并将PHPMailer 与身份验证一起使用。

    首先将此代码保存到 1 个文件中,并将此文件用作邮件模板。检查下面的代码。

    <?php
    
    include("/phpMailer/class.phpmailer.php"); // Include php mailer file
    ob_start(); // start buffering
    include("mail_template.php"); // mail template file
    $msg = ob_get_contents();
    ob_end_clean(); // clear buffering
    $mail = new PHPMailer(); // defaults to using php "mail()"
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->SMTPAuth = true;
    $mail->Username = "emailaddress"; // SMTP account username
    $mail->Password = "password"; // SMTP account password 
    
    $mail->Port = "MAIL_PORT";
    $mail->Host = "MAIL_HOST";
    
    $body = $msg;
    $mail->From = "From email address";
    $mail->FromName = "From Name";
    $mail->Subject = "Subject";
    $mail->MsgHTML($body);
    $mail->AddAddress("email address");
    
    if (!$mail->Send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    }
    ?>
    

    【讨论】:

    • @wawanD 如果它工作,请接受这个作为答案。
    【解决方案2】:

    您不是在编写 代码 由服务器处理并由浏览器呈现 - 您正在编写一个采用电子邮件形式的独立网页。你可以做的事情受到严格限制。

    您不能使用 PHP、JS、iframe 或任何人们认为花哨的真正东西。电子邮件在技术方面停留在 90 年代(而且有充分的理由),所以写得像你的听众在 Windows 95 上运行 IE 5.5。

    你只被允许做一些事情:

    • &lt;style&gt;&lt;/style&gt; 中包含的 CSS
    • 基本 HTML(认为 HTML4 严格)
    • &lt;img ..&gt; 中的图片会被大多数客户端自动屏蔽
    • 可以使用背景图片,但有很多限制。并且像普通图片一样被屏蔽。

    任何需要运行的 PHP 都必须在您发送电子邮件之前完成

    有关如何使用 PHP 发送电子邮件,请参阅此答案:https://*.com/a/5335311/618693

    【讨论】:

      最近更新 更多