2015-02-06 3 views
1

Привет Я новичок в php и postmark, и я пытаюсь получить форму отправки, установленную на мой адрес электронной почты. У меня есть электронная почта работает, однако я не могу получить его, чтобы показать заголовок ("Location: thanks.php) страница Любая помощь будет принята с благодарностью СпасибоИспользование Postmark с PHP

require("postmark.php"); 

$postmark = new Postmark("API KEY","[email protected]","$email"); 

if($postmark->to("[email protected]")->subject("Mission Woodshop | " . $name)->plain_message($email_body)->send()){ 
    exit; 
} 


header("Location: thanks.php"); 
exit; 

<?php 

/** 
* This is a simple library for sending emails with Postmark created by Matthew Loberg (http://mloberg.com) 
*/ 

class Postmark{ 

    private $api_key; 
    private $data = array(); 

    function __construct($apikey,$from,$reply=""){ 
     $this->api_key = $apikey; 
     $this->data["From"] = $from; 
     $this->data["ReplyTo"] = $reply; 
    } 

    function send(){ 
     $headers = array(
      "Accept: application/json", 
      "Content-Type: application/json", 
      "X-Postmark-Server-Token: {$this->api_key}" 
     ); 
     $data = $this->data; 
     $ch = curl_init('http://api.postmarkapp.com/email'); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
     $return = curl_exec($ch); 
     $curl_error = curl_error($ch); 
     $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
     curl_close($ch); 
     // do some checking to make sure it sent 
     if($http_code !== 200){ 
      return false; 
     }else{ 
      return true; 
     } 
    } 

    function to($to){ 
     $this->data["To"] = $to; 
     return $this; 
    } 

    function subject($subject){ 
     $this->data["subject"] = $subject; 
     return $this; 
    } 

    function html_message($body){ 
     $this->data["HtmlBody"] = "<html><body>{$body}</body></html>"; 
     return $this; 
    } 

    function plain_message($msg){ 
     $this->data["TextBody"] = $msg; 
     return $this; 
    } 

    function tag($tag){ 
     $this->data["Tag"] = $tag; 
     return $this; 
    } 

} 
+0

Любые ошибки показаны? – Mooseman

+1

Если «отправить» успешно, вы просто «выходите» из своего кода из блока «if». Вызов заголовка (...) должен находиться внутри этого блока. – mrunion

+0

Calvin, можете ли вы ссылаться на файл «postmark.php», который вы используете для доступа к почтовому марке? Как и другие, строка «exit» внутри блока if выходит из сценария, прежде чем вы отправите заголовок «Местоположение», но это невозможно проверить, не глядя на исходный код «postmark.php» –

ответ

1

Предположительно $postmark->send() возвращает истину, когда она работает.... вы, если/то оператор говорит: "выход, когда посыл успешно.

при перемещении header() вызова в КРПЕ /, то он должен работать, как ожидались. вы также хотите, чтобы обрабатывать случай, когда выходит из строя $postmark->to вызова, возможно, перенаправить на страницу с ошибкой в ​​этой точке.