[英]sender mail with php
我使用此代碼發送郵件。 但是當我在$ body中添加$ headers和lines時,它停止工作。 誰能支持我找到一個或多個錯誤?
感謝您的支持。
<?PHP
// Email Address
$youremail = 'correo@correo.com';
$memberemail = $_POST['email'];
// Register Form
if ( isset($_POST['email']) && isset($_POST['name']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) {
// Detect & Prevent Header Injections
$test = "/(content-type|bcc:|cc:|to:)/i";
foreach ( $_POST as $key => $val ) {
if ( preg_match( $test, $val ) ) {
exit;
}
}
// Email Format
$body = "Hola! $_POST[name]. Gracias por solicitar tu inscripción. \n";
$body .= "Analizaremos tú solicitud y en caso de resultar positiva recibirás un correo de confirmación en las próximas 24 horas. \n\n";
$body .= "Tus datos de solicitud son: \r\n"
$body .= "============================ \r\n";
$body .= "Nombre: $_POST[name] \n";
$body .= "eMail: $_POST[email] \n";
$body .= "Empresa: $_POST[telephone] \n";
$body .= "Sector: $_POST[ticket] \n\n";
$body .= "Atentamente, \n";
$body .= "Staff \n\n";
$body .= "NOTA: Para culaquier duda sobre tu proceso de inscripción te recomendamos leer las preguntas frecuentes en el sito web del evento http://www.evento.com";
//Send email
$headers = "From: Staff <contacto@evento.com>" . "\r\n" . "Bcc: admin@evento.com" . "\r\n";
mail( "To:" . $memberemail , "Nuevo registro", $body, "From:" . $headers);
}
// Subscribe Form
if( isset($_POST['subscriber']) && filter_var($_POST['subscriber'], FILTER_VALIDATE_EMAIL) ) {
$data = $_POST['subscriber'] . ";" . "\n";
$ret = file_put_contents('subscribers.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
die('Ouch! Al parecer hay un error.');
}
} else {
die('No se pueden enviar los datos.');
}
?>
更改$body, "From:" . $headers)
$body, "From:" . $headers)
到$body, $headers)
您已經有From:
:
$headers = "From: Staff <contacto@evento.com>"...
加上注釋中指出的內容,更改並刪除"To:" .
mail( "To:" . $memberemail , "Nuevo registro", $body, "From:" . $headers);
至
mail($memberemail, "Nuevo registro", $body, $headers);
郵件自動將第一個參數設置為收件人To:
但是,您可能希望將$youremail
作為第一個參數,將$memberemail
作為From:
$memberemail
因為郵件將發送給發送電子郵件的人,但是我會讓您決定。
查閱手冊:
編輯:
在測試您的代碼之前,以下行( 我忽略了 )中缺少分號:
body .= "Tus datos de solicitud son: \r\n"
^ missing semi-colon
添加它
body .= "Tus datos de solicitud son: \r\n";
如果設置了錯誤報告,您將看到以下解析/語法錯誤:
解析錯誤:語法錯誤,/ server / path / file.php中行(數字)意外出現“ $ body”(T_VARIABLE)
當PHP在行號上發出解析錯誤信號時,通常是在該行“之前”,而不是實際的行號本身。
將錯誤報告添加到文件頂部,這將有助於發現錯誤。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:錯誤報告僅應在登台進行,而不應在生產過程中進行。
我認為這與以下方面有關:
您應該指定“停止工作”的確切含義:它是從服務器發送的嗎? 它落入垃圾箱了嗎? 它被您的smarthost拒絕了嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.