У меня есть сценарий php mail, который запускается следующим образом.Php mail script - не включая значения формы в отправленном письме
var theForm = document.getElementById('mailinglist-form');
new stepsForm(theForm, {
onSubmit : function(form) {
var messageEl = $('.final-message');
// hide form
$('.simform-inner').addClass('hide');
//remove cursor
$('#q2').blur();
//get input field values data to be sent to server
post_data = {
'user_name' : $('input[name=name]').val(),
'user_email' : $('input[name=email]').val()
};
//Ajax post data to server
$.post('mail.php', post_data, function(response){
if(response.type == 'error'){
//load json data from server and output message
messageEl.html('Sorry, please try again later.');
$(messageEl).addClass('show');
}else{
messageEl.html(response.text);
$(messageEl).addClass('show');
}
}, 'json');
}
});
Это для вызовов следующих файлов mail.php
<?php
if($_POST)
{
$to_email = "[email protected]"; //Recipient email
$subject = "Mailing list request";
$from = '[email protected]';
//check if its an ajax request, exit if not
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
$output = json_encode(array(//create JSON data
'type'=>'error',
'text' => 'Sorry Request must be Ajax POST'
));
die($output); //exit script outputting json data
}
//Sanitize input data using PHP filter_var().
$user_name = filter_var($_POST["user_name"], FILTER_SANITIZE_STRING);
$user_email = filter_var($_POST["user_email"], FILTER_SANITIZE_EMAIL);
//additional php validation
if(strlen($user_name)<3){ // If length is less than 3 it will output JSON error.
$output = json_encode(array('type'=>'error', 'text' => 'Name is too short or empty!'));
die($output);
}
if(!filter_var($user_email, FILTER_VALIDATE_EMAIL)){ //email validation
$output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email!'));
die($output);
}
//email body
$message_body = $message."".$user_name." wants to sign up to your mailing list. Details below:\r\n\nName : ".$user_name."\r\nEmail : ".$user_email."\r\n";
//proceed with PHP email.
$headers = 'From: '.$from.'' . "\r\n" .
'Reply-To: '.$from.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$send_mail = mail($to_email, $subject, $message_body, $headers);
if(!$send_mail)
{
//If mail couldn't be sent output error. Check your PHP email configuration (if it ever happens)
$output = json_encode(array('type'=>'error', 'text' => 'Sorry, please try again later.'));
die($output);
}else{
$output = json_encode(array('type'=>'message', 'text' => 'All done. Thanks for signing up.'));
die($output);
}
}
?>
Теперь все это, кажется, работает, он посылает по электронной почте с именем пользователей и адрес электронной почты на указанный адрес электронной «myemail» от " anotheremail».
Что действительно странно в том, что когда-то нет имени пользователя или адреса электронной почты только остальное сообщение.
Может ли кто-нибудь сказать мне, что происходит здесь, я наткнулся на дорожный блок на этом.
спасибо и извините за плохо отформатированный код ...: P
Что сказал Пол, но также не использовать отправленный адрес как адрес From - это приведет к сбою проверки SPF. Отправьте его с собственного адреса yoru и используйте адрес отправления в качестве ответа, как вы это делаете. Кроме того, не помещайте свои вопросы как PHPMailer, если вы его не используете. – Synchro