制作联系表格并用PHP发送电子邮件

时间:2017-05-09 06:25:42

标签: php forms submit

据我所知,我已经在表单中正确提到了所有内容,但它无法访问我指定的任何电子邮件。请你指导我?

<?php 
$name = $_POST[ name ]; 
$email = $_POST[ email ]; 
$message = $_POST[ message ]; 
$MobileNumber = $_POST[ MobileNumber ]; 
$AccountHolderName = $_POST[ AccountHolderName ]; 
$BankName = $_POST[ BankName ]; 
$BankAccountNumber = $_POST[ BankAccountNumber ]; 
$BranchAddressWithPinCode = $_POST[ BranchAddressWithPinCode ]; 
$IFSC = $_POST[ IFSC ]; 

$to = email@domain.com ; // this is where i put my email addres where i want 
to rec. the mail. 
$message = FROM: .$name. Email: .$email. Message: .$message; 
$headers = From: youremail@domain.com . "\r\n"; 

if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // this line checks that we 
have a valid email address 
mail($to, $subject, $message, $headers); //This method sends the mail. 
echo "Your email was sent!"; // success message 
}else{ 
echo "Invalid Email, please provide a correct email."; 
} 

?>

1 个答案:

答案 0 :(得分:0)

<?php 
    /*
        unless you are using constants as the field value in the $_POST 
        you need to quote the field. Most of the variables here were never
        used by the mail script so are they important?
    */
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    $MobileNumber = $_POST['MobileNumber']; 
    $AccountHolderName = $_POST['AccountHolderName']; 
    $BankName = $_POST['BankName']; 
    $BankAccountNumber = $_POST['BankAccountNumber']; 
    $BranchAddressWithPinCode = $_POST['BranchAddressWithPinCode']; 
    $IFSC = $_POST['IFSC'];

    /*
        as above comment - many variables not used so here include
        everything from the POST request as a "belt & braces" approach
    */
    $data = array();
    foreach( $_POST as $key => $value )$data[]="{$key}: {$value}";
    $data=implode( PHP_EOL, $data );

    /*
        As with the other strings they need to be quoted. Single quotes do not
        allow you to include PHP variables within the string, double quotes do.
        Often useful when quoting php variables within a string is to use 
        curly braces around the variable - as seen here.
    */
    $to = 'email@domain.com';
    $message = "FROM: {$name} Email: {$email} Message: {$message}\n\n{$data}";
    $subject='New message';
    $headers = "From: youremail@domain.com\r\n"; 


    if ( filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {

        /* capture the return value from `mail` to determine if the mail was sent correctly */
        $status = mail( $to, $subject, $message, $headers );
        $message = $status ? "Your email was sent!" : "There was a problem sending your message";

    }else{ 
        $message = "Invalid Email, please provide a correct email."; 
    } 

    echo $message;
?>
相关问题