2016-07-01 52 views
1

我想使用一些靜態和一些動態數據自動發送電子郵件。因此,這是過程:使用PHP,HTML和JSON發送電子郵件

  1. 在我的主要*.php I'm取出由我ddbb和 創建JSON數據。
  2. 我要將此JSON發送給另一個*.php來管理此數據 將其插入我的<html>(第二*.php)。
  3. 再次在第一個* .php我準備郵件選項併發送 它。這是代碼。

first.php

... 
$query1= mysqli_query($connect, "SELECT * FROM table1 WHERE id='".$field1."'"); 
$row1= mysqli_fetch_array($query1); 
$data_row1[] = $row1; 

$query2= mysqli_query($connect, "SELECT * FROM table2 WHERE id='".$field2."'"); 
$row2= mysqli_fetch_array($query2); 
$data_row2[] = $row2; 

$data = array(
    "data_row1" => $data_row1, 
    "data_row2" => $data_row2 
); 

$json_data = json_encode($data); 
$url = 'https://webpage.com/folder/second.php?'; 
$variables = 'data='.$json_data; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $variables); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$email_text = curl_exec($ch); 
curl_close($ch); 

然後,在second.php

<?php 
    $result = $_GET['data']; 
    $data = json_decode($result); 

    $row_data1[] = $data['row_data1']; 
    $row_data2[] = $data['row_data2']; 
    $name= $row_data1['var1']." ".$row_data1['var2']; 
    $city= $row_data2['var2']; 
    ... 
?> 
<html> 
    ... Some html printing the dynamic values using <?php echo $name; ?> 
</html> 

最後,再次在first.php

... 
$to = $destionation_email; 
$subject = "The email subject"; 
$headers = "From: [email protected]".strip_tags($_POST['req-email']) . "\r\n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=UTF-8\r\n"; 

mail($to, $subject, $email_text, $headers); 

但我的問題是,second.php沒有獲取JSON和電子郵件只顯示靜態html,沒有任何數據。

任何解決方案從second.php獲取JSON?

回答

0

好了,終於決定從來就在同一*.php做的一切,所以我不需要發送和接收任何東西。

I'm創建與動態值的HTML的方式是:

$email_text = 
    '<html> 
     <body> 
     ... 
      <strong>'.$variable1.'</strong> 
     </body> 
    </html>'; 

It's一個相當長的HTML郵件,但我wasn't能夠使用其他辦法可以做到。我會保持這個問題,以防萬一有人知道另一種方法。

1
<php echo $first_variable ?> 

應該是:

<?php echo $first_variable; ?> 
+0

第一個「?」在那裏,但沒有「;」。我會嘗試;) –

+0

當我發佈它時,它不在那裏,假設你的意思是在實際的代碼中。 –

+0

是的,這是在我的代碼,但在這裏。否則,不能添加「;」。 –