Mandrill SMTP HTML模板电子邮件发送

时间:2014-03-12 16:10:13

标签: php mysql mandrill

我正在使用PHP

我正在创建一个使用mandrill SMTP发送电子邮件的邮件应用程序。该应用程序将允许用户选择存储在数据库中的自定义设计的电子邮件模板作为tbl_template中的纯html代码。

我编写了一个查询数据库并获取所有模板的代码,并将它们存储在html标记中供用户选择。

我面临两个问题,其中一个是整个Html代码在所有选项标签中都可见。 第二个问题,当我不确定如何存储选项值=""属性(存储所有模板html代码)并将其保存到$ _SESSION中,或者能够将该值内容用作电子邮件的一部分。

load_template.php:

  

     

函数LoadTemplate(){

define('DB_HOST', "localhost");
define('DB_USER', "root");
define('DB_PASSWORD', "root");
define('DB_NAME', "db_mailer");
$con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die ("Cnnection Error".mysqli_error($con));

$sql = "SELECT id, temp_name, temp_structure FROM tbl_template";
$query = mysqli_query($con, $sql);
    $option='<select name="template">';
    $option.='<option name="temp">Select Template</option>';
    $option.='';
        while($result = mysqli_fetch_assoc($query)){
            $option.='<option id="'.$result['id'].'" value="'.$result['temp_structure'].'">'.$result['temp_name'].'</option>';

        }
    $option.='</select>';

return $option; }

的index.php:

                     

您的电子邮件:
          

<p>Your Name:<br>
    <input type="text" id="from_name" name="from_name" placeholder="Please type in your email..."></p>

<p>Send To Email:<br>
    <input type="email" id="to_email" name="to_email" placeholder="Please type in the client email..."></p>

<p>Send To name:<br>
    <input type="text" id="to_name" name="to_name" placeholder="Please type in the client email..."></p>

<p>Subject:<br>
    <input type="text" id="subject" name="subject" placeholder="Wright something nice..."></p>

    <?php require('load_temp.php'); echo LoadTemplate(); ?>

<p><textarea rows="5" cols="5"></textarea></p>
<input type="submit" value="Send" name='submit'>
     

mail.php我必须配置的mandrill SMTP文件的一部分:

> <?php /**  * Created by PhpStorm.  * User: MDuarte  * Date: 11/03/2014
> * Time: 10:28  */ $data=Array();
> 
> $data['from_email']= $_POST['from_email']; $data['from_name']=
> $_POST['from_email']; $data['to_email']= $_POST['to_email'];
> $data['to_name']= $_POST['to_name']; $data['subject'] =
> $_POST['subject']; $data['content'] = $_POST['template'];
> $data['temp'] = $_POST['template'];
> 
> require_once "Mandrill.php";
> 
> try {
>     $mandrill = new Mandrill('API_KEY');
>     $message = array(
>         'html' => $data['temp'],
>         'text' => 'Example text content',
>         'subject' => $data['subject'],
>         'from_email' => $data['from_email'],
>         'from_name' => $data['from_name'],
>         'to' => array(
>             array(
>                 'email' => $data['to_email'],
>                 'name' => $data['to_name'],
>                 'type' => 'to'
>             )
>         ),
> 
> } catch(Mandrill_Error $e) {
>     // Mandrill errors are thrown as exceptions
>     echo 'A mandrill error occurred: ' . get_class($e) . ' - ' . $e->getMessage();
>     // A mandrill error occurred: Mandrill_Unknown_Subaccount - No subaccount exists with the id >'customer-123'
>       throw $e; }

现在发送的电子邮件包含所有内容,但不包含html模板,我正在尝试在mail.php中添加html模板

  

&#39; HTML&#39; =&GT; $数据[&#39;温度&#39],

1 个答案:

答案 0 :(得分:0)

通过任何邮件发送HTML代码。它将它们转换为html真实标签。

所以,

使用urlencode(YOUR HTML CONTENT)添加html模板

查看http://php.net/manual/en/function.urlencode.php

希望这会有所帮助。