0

I am confused to use this function when my coding is too long and there is "php" function in email. Can you give me an example? I want to send an email according to this code that I created this from to * 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>

2 Answers2

0

You can do this with the help of output buffer and use PHPMailer with authentication.

First save this code to 1 file and use this file as mail template. check below code.

<?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;
}
?>
Narayan
  • 1,670
  • 1
  • 19
  • 37
0

You are not writing code to be processed by a server and rendered by a browser - You are writing a self-contained webpage that takes the form of an email. You are severely restricted in what you can do.

You can't use PHP, JS, iframes, or any really anything that one would consider fancy. Email is stuck in the 90's in terms of technology (and for good reason), so write like your audience is running IE 5.5 on Windows 95.

You are only allowed a few things:

  • CSS contained in <style></style>
  • Basic HTML (think HTML4 strict)
  • Images in <img ..> and are automatically blocked by most clients
  • Background images can be used, but with many restrictions. And are blocked like regular images.

Any PHP that needs to run must be done before you ever send the email.

See this answer on how to send emails with PHP: https://stackoverflow.com/a/5335311/618693

AJMaxwell
  • 374
  • 2
  • 15