2015-11-10 2 views
0

Я хочу отправить электронные письма пользователям после заполнения и отправки формы, я использовал метод POST для захвата данных, теперь я хотел бы заменить статический текст на захваченные переменные из формы. Я предоставляю некоторые переменные образцы данных из формы.Как заменить статический текст на динамическую переменную в скрипте Mandrill

$name=$_POST['name']; 
$email=$_POST['email']; 
$message=$_POST['message']; 


$uri = 'https://mandrillapp.com/api/1.0/messages/send.json'; 

$postString = '{ 
"key": "xxxxxxxxxxxxx", 
"message": { 
    "html": "this is the emails html content", 
    "text": "this is the emails text content", 
    "subject": "this is the subject", 
    "from_email": "[email protected]", 
    "from_name": "John", 
    "to": [ 
     { 
      "email": "[email protected]", 
      "name": "Bob" 
     } 
    ], 
    "headers": { 

    }, 
    "track_opens": true, 
    "track_clicks": true, 
    "auto_text": true, 
    "url_strip_qs": true, 
    "preserve_recipients": true, 

    "merge": true, 
    "global_merge_vars": [ 

    ], 
    "merge_vars": [ 

    ], 
    "tags": [ 

    ], 
    "google_analytics_domains": [ 

    ], 
    "google_analytics_campaign": "...", 
    "metadata": [ 

    ], 
    "recipient_metadata": [ 

    ], 
    "attachments": [ 

    ] 
}, 
"async": false 
}'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $uri); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); 

$result = curl_exec($ch); 

echo $result; 

ответ

1

Может быть что-то вроде этого:

$postString = '{ 
"key": "xxxxxxxxxxxxx", 
"message": { 
    "html": "'.$yourHTML.'", 
    "text": "'.$yourTEXT.'", 
    "subject": "this is the subject", 
    "from_email": "[email protected]", 
    "from_name": "John", 
    "to": [ 
     { 
      "email": "[email protected]", 
      "name": "Bob" 
     } 
    ], 
    ... 

Но вы не указываете, где вы хотите поместить динамические ДАННЫЕ.

Но для вашего случая было бы лучше создать массив PHP, а затем преобразовать его с помощью json_encode.

+0

ок спасибо даст ему попробовать и надеюсь, что он работает – eugbana

+0

благодаря Рафаэль вы были очень полезны, он работал именно так, как я хотел его – eugbana

+0

Добро пожаловать ! Не забывайте отмечать вопрос как решаемый! –

1

Просто заменить статические данные с переменными:

$postString = '{ 
"key": "xxxxxxxxxxxxx", 
"message": { 
"html": "", 
"text": "$message", 
"subject": "this is the subject", 
"from_email": "[email protected]", 
"from_name": "John", 
"to": [ 
    { 
     "email": "$email", 
     "name": "$name" 
    } 
], 
0

Обеспечить Объединить данные через API

... 
    "message": { 
      "global_merge_vars": [ 
       { 
        "name": "var1", 
        "content": "Global Value 1" 
       } 
      ], 
      "merge_vars": [ 
       { 
        "rcpt": "[email protected]", 
        "vars": [ 
         { 
          "name": "fname", 
          "content": "John" 
         }, 
         { 
          "name": "lname", 
          "content": "Smith" 
         } 
        ] 
       } 
      ], 
    ... 

Формат

Объединить теги использовать следующий формат, с (|) и звездочкой (*) с каждой стороны имени тега слияния:

| MERGETAG |

В шаблоне или содержания, слияния тегов может выглядеть следующим образом:

Dear *|FNAME|*, 

Thanks for your purchase on *|ORDERDATE|* from ABC Widget Company. We appreciate your business and have included a copy of your invoice below. 

*|INVOICEDETAILS|* 

-- ABC Widget Co. 

Есть три Объединить теги включены в предыдущих примерах. Во время отправки укажите глобальные значения и/или данные для каждого получателя для каждого тега слияния.

со ссылкой:

https://mandrill.zendesk.com/hc/en-us/articles/205582487-How-to-Use-Merge-Tags-to-Add-Dynamic-Content

Смежные вопросы