2017-12-04 7 views
0

Eigentlich sende ich E-Mail von PHP. Wenn ich file_get_contents() für den E-Mail-Text einer externen Datei verwende, wird die E-Mail-ID nicht zurückgegeben. Anstelle der E-Mail-ID wird '[email protected]' zurückgegeben.file_get_contents in PHP gibt keine E-Mail-ID zurück, warum?

Hier ist mein Code die Datei mit file_get_contents() aufzurufen:

$params = 'for=team&name='.urlencode($name).'&email='.urlencode($email).'&phone='.urlencode($phone).'&company='.urlencode($company).'&looking_for='.$looking_for.'&country='.urlencode($country).'&source_page='.urlencode($source_page); 
$team_msg = file_get_contents(get_template_directory_uri().'/mail-template/contact_us_email_temp.php?'.$params); 
$headers[] = "MIME-Version: 1.0" . "\r\n"; 
$headers[] .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
$headers[] .= 'From: Someone <[email protected]>'; 
$to = '[email protected]'; 
$team_subject = 'email subject'; 
wp_mail($to, $team_subject, $team_msg, $headers); 

Und hier ist die 'contact_us_email_temp.php', die von der Funktion aufgerufen wird:

$message = "<table border='0'><tbody> 
      <tr><td colspan='2'>Users Detail:</td></tr> 
      <tr> 
       <td><b>Name</b></td> 
       <td>".$_GET['name']."</td> 
      </tr> 
      <tr> 
       <td><b>Official Email</b></td> 
       <td>".$_GET['email']."</td> 
      </tr> 
      <tr> 
       <td><b>Company</b></td> 
       <td>".$_GET['company']."</td> 
      </tr> 
      <tr> 
       <td><b>Mobile Number</b></td> 
       <td>".$_GET['phone']."</td> 
      </tr> 
      <tr> 
       <td><b>Looking For</b></td> 
       <td>".$_GET['looking_for']."</td> 
      </tr> 
      <tr> 
       <td><b>Country</b></td> 
       <td>".$_GET['country']."</td> 
      </tr> 
      <tr> 
       <td><b>Source Page</b></td> 
       <td>".$_GET['source_page']."</td></tr> 
      <tr> 
      </tbody> 
      </table>"; 
echo $message; 

Ich bin nicht sicher Was stimmt nicht mit der Funktion?

Dank

Antwort

0

file_get_contents() funktioniert nicht wie ein HTTP-Request. Sie laden eine ACTUAL-Datei als Zeichenfolge, und der Code wird nicht ausgeführt. Wenn Sie die Mail jetzt senden, sieht der Betrachter zum Beispiel die $_GET['name']. Sie möchten eine Funktion aus der Datei contact_us_email_temp.php erstellen und die GET-Parameter als Funktionsparameter verwenden.

function getEmail($name, $email, $company, $phone, $looking_for, $country, $source_page) { 
$message = " 
<table border='0'><tbody> 

<tr><td colspan='2'>Users Detail:</td></tr> 
     <tr> 
      <td><b>Name</b></td> 
      <td>".$name."</td> 
     </tr> 
     <tr> 
      <td><b>Official Email</b></td> 
      <td>".$email."</td> 
     </tr> 
     <tr> 
      <td><b>Company</b></td> 
      <td>".$company."</td> 
     </tr> 
     <tr> 
      <td><b>Mobile Number</b></td> 
      <td>".$phone."</td> 
     </tr> 
     <tr> 
      <td><b>Looking For</b></td> 
      <td>".$looking_for."</td> 
     </tr> 
     <tr> 
      <td><b>Country</b></td> 
      <td>".$country."</td> 
     </tr> 
     <tr> 
      <td><b>Source Page</b></td> 
      <td>".$source_page."</td></tr> 
     <tr> 
     </tbody> 
     </table>"; 
return $message; 
} 

Erfordern dieses Skript in Ihrem Haupt-Skript und die Funktion statt file_get_contents

+0

Super !! Vielen Dank :) Diese Lösung funktionierte wie Charme ... –

Verwandte Themen