2015-07-21 50 views
-1

我想發送一封電子郵件使用PHP並試圖定義使用PHP字符串的頭和從頭。發送電子郵件使用PHP不工作

HTML:

<form action="send_email.php" name="form"> 

From Email:<br> 
<input type="text" name="post4"> 
<br><br> 
To Email:<br> 
<input type="text" name="post1"> 
<br><br> 
Subject:<br> 
<input type="text" name="post2"> 
<br><br> 
Body:<br> 
<textarea name="post3" form="form">Enter Message Body</textarea> 
<br><br> 
<input type="submit" value="Submit"> 
</form> 

PHP:

<?php 
session_start(); 

$post1 = $_POST['post1']; 
$post2 = $_POST['post2']; 
$post3 = $_POST['post3']; 
$post4 = $_POST['post4']; 


$to  = '$post1'; 
$subject = '$post2'; 
$message = '$post3'; 
$headers = 'From: $post4' . "\r\n" . 
    'Reply-To: $post4' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

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

echo 'done'; 

?> 

我想不通爲什麼我時,我用我的心臟網絡託管服務器上運行腳本,我不是接收電子郵件。

有人可以告訴我我要去哪裏嗎?由於

+0

的第一件事是你需要定義操作方法。這個php代碼告訴我們,你應該添加method ='POST'。其他的事情是你需要檢查你的配置。也許你的郵件功能需要在php.ini中編輯。 – hkucuk

回答

0

試試這個代碼

<?php 
session_start(); 

$post1 = $_POST['post1']; 
$post2 = $_POST['post2']; 
$post3 = $_POST['post3']; 
$post4 = $_POST['post4']; 


$to  = $post1; 
$subject = $post2; 
$message = $post3; 
$headers = 'From: '.$post4. "\r\n" . 
    'Reply-To:'. $post4 . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

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

echo 'done'; 

?> 

HTML

<form action="send_email.php" method="post" name="form"> 

From Email:<br> 
<input type="text" name="post4"> 
<br><br> 
To Email:<br> 
<input type="text" name="post1"> 
<br><br> 
Subject:<br> 
<input type="text" name="post2"> 
<br><br> 
Body:<br> 
<textarea name="post3" form="form">Enter Message Body</textarea> 
<br><br> 
<input type="submit" value="Submit"> 
</form> 
+0

謝謝你的代碼,但是這也不會發送任何東西,因爲我沒有收到任何電子郵件,我甚至檢查垃圾文件夾 –

+0

nonsence *'From:$ post4'。「\ r \ n」* – donald123

+0

對不起,我忘了那個謝謝@ donald123 –

0

這裏的問題是,潛在的,而不是在PHP。

您的表單需要一種方法。默認情況下,表單通過URL中的GET參數提交數據,在PHP中,在這種情況下,將參考$_GET['post1']。作爲第一步,我建議在您的<form>中添加method='post'作爲屬性,因爲您所指的所有$_POST變量當前都不包含任何內容,如果這是HTML表單代碼的精確複製/粘貼。

0

單引號內不能使用PHP變量:'$var'將直接返回'$ var'。但是,"$var"將返回值爲$var的字符串。因此,您必須使用:

$to  = $post1; // or $to = "$post1"; 
$subject = $post2; // '' 
$message = $post3; // '' 
$headers = "From: $post4" . "\r\n" . 
    "Reply-To: $post4" . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

您可以通過合併字符串「From ...」和「\ r \ n」來清理代碼。

0

請試試這個

<?php 
session_start(); 

$post1 = $_POST['post1']; 
$post2 = $_POST['post2']; 
$post3 = $_POST['post3']; 
$post4 = $_POST['post4']; 


$to  = '$post1'; 
$subject = '$post2'; 
$message = '$post3'; 

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // Or use "Content-type:text/plain;charset=UTF-8" . "\r\n"; 

$headers.= 'From: $post4' . "\r\n" . 
    'Reply-To: $post4' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

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

echo 'done'; 

?> 
0

你先安裝PEAR包然後添加以下代碼

include('Mail.php'); 

$recipients = $_POST['post2']; 

$headers['From'] = $_POST['1']; 
$headers['To']  = $_POST['2']; 
$headers['Subject'] = 'Test message'; 

$body = 'Test message'; 

$params['sendmail_path'] = '/usr/lib/sendmail'; 

$mail_object =& Mail::factory('sendmail', $params); 

$mail_object->send($recipients, $headers, $body); 

使用谷歌的SMTP端口號465

0

試試這個(工作在我結束) :

<?php 
session_start(); 

$email = htmlspecialchars($_POST['post1']); 
$subject = htmlspecialchars($_POST['post2']); 
$message = htmlspecialchars($_POST['post3']); 
$from = htmlspecialchars($_POST['post4']); 

$headers = "From: <$from> $from\r\n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$ok = @mail($email, $subject, $message, $headers, "-f" . $from); 

echo 'done'; 
?> 

<form action="send_email.php" method="post" name="form"> 

From Email:<br> 
<input type="text" name="post4"> 
<br><br> 
To Email:<br> 
<input type="text" name="post1"> 
<br><br> 
Subject:<br> 
<input type="text" name="post2"> 
<br><br> 
Body:<br> 
<textarea name="post3" form="form">Enter Message Body</textarea> 
<br><br> 
<input type="submit" method="post" value="Submit"> 
</form> 
+0

這給出了以下錯誤語法錯誤,意外的''(T_ENCAPSED_AND_WHITESPACE),期待標識符(T_STRING)或變量(T_VARIABLE)或第4行上的/home/sites/hewdenportal.co.uk/public_html/secret/send_email.php中的編號(T_NUM_STRING) –

+0

您現在可以嘗試編碼,它應該像這樣工作。它也提供注射安全 – Mikey