Функция PHP mail не завершает отправку электронной почты

Это сработало для меня:

<script>
    function sel_file() {
        $("input[name=userfile]").trigger('click');
    }  
</script>

<input type="file" name="userfile" id="userfile" />

<a href="javascript:sel_file();">Click</a>
442
задан ÐℛẲḰỮℒѦ 4 June 2019 в 09:41
поделиться

5 ответов

Если вы запускаете этот код на локальном сервере (т.е. на вашем компьютере в целях разработки), он не отправит электронное письмо получателю. Что произойдет, это создаст файл .txt в папке с именем mailoutput.

В случае, если вы используете бесплатную службу хозингирования, такую ​​как 000webhost или hostinger, эти поставщики услуг отключают функцию mail(), чтобы предотвратить непреднамеренное использование спуфинга электронной почты, рассылки спама и т. Д. Я предпочитаю, чтобы вы свяжитесь с ними, чтобы узнать, поддерживают ли они эту функцию.

Если вы уверены, что поставщик услуг поддерживает функцию mail (), вы можете проверить это руководство PHP для получения дополнительной справки, PHP mail ()

Чтобы проверить, поддерживает ли ваш хостинг сервис. поддержите функцию mail (), попробуйте запустить этот код, (не забудьте изменить адрес электронной почты получателя)

<?php
    $to      = 'nobody@example.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: webmaster@example.com' . "\r\n" .
        'Reply-To: webmaster@example.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

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

Надеюсь, это помогло.

1
ответ дан Ronald P Mathews 4 June 2019 в 09:41
поделиться

Попробуйте это

if (

Попробуйте это

[110]POST['submit']) { $success= mail($to, $subject, $body, $from); if($success) { echo ' <p>Your message has been sent!</p> '; } else { echo ' <p>Something went wrong, go back and try again!</p> '; } }
4
ответ дан Ryan Vincent 4 June 2019 в 09:41
поделиться

Я думаю, что это должно сработать. Я просто добавил if(isset и добавил конкатенацию к переменным в теле, чтобы отделить PHP от HTML.

<?php
    $name = 

Я думаю, что это должно сработать. Я просто добавил if(isset и добавил конкатенацию к переменным в теле, чтобы отделить PHP от HTML.

[110]POST['name']; $email =

Я думаю, что это должно сработать. Я просто добавил if(isset и добавил конкатенацию к переменным в теле, чтобы отделить PHP от HTML.

[110]POST['email']; $message =

Я думаю, что это должно сработать. Я просто добавил if(isset и добавил конкатенацию к переменным в теле, чтобы отделить PHP от HTML.

[110]POST['message']; $from = 'From: yoursite.com'; $to = 'contact@yoursite.com'; $subject = 'Customer Inquiry'; $body = "From:" .$name."\r\n E-Mail:" .$email."\r\n Message:\r\n" .$message; if (isset(

Я думаю, что это должно сработать. Я просто добавил if(isset и добавил конкатенацию к переменным в теле, чтобы отделить PHP от HTML.

[110]POST['submit'])) { if (mail ($to, $subject, $body, $from)) { echo '<p>Your message has been sent!</p>'; } else { echo '<p>Something went wrong, go back and try again!</p>'; } } ?>
8
ответ дан Nisse Engström 4 June 2019 в 09:41
поделиться

Просто добавьте несколько заголовков перед отправкой почты:

<?php 
$name = 

Просто добавьте несколько заголовков перед отправкой почты:

[110]

И еще одна вещь. Функция mail() не работает в localhost. Загрузите свой код на сервер и попробуйте.

POST['name']; $email =

Просто добавьте несколько заголовков перед отправкой почты:

[110]

И еще одна вещь. Функция mail() не работает в localhost. Загрузите свой код на сервер и попробуйте.

POST['email']; $message =

Просто добавьте несколько заголовков перед отправкой почты:

[110]

И еще одна вещь. Функция mail() не работает в localhost. Загрузите свой код на сервер и попробуйте.

POST['message']; $from = 'From: yoursite.com'; $to = 'contact@yoursite.com'; $subject = 'Customer Inquiry'; $body = "From: $name\n E-Mail: $email\n Message:\n $message"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html\r\n"; $headers .= 'From: from@example.com' . "\r\n" . 'Reply-To: reply@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers);

И еще одна вещь. Функция mail() не работает в localhost. Загрузите свой код на сервер и попробуйте.

15
ответ дан Nisse Engström 4 June 2019 в 09:41
поделиться
$name = [110]POST['name'];
$email = [110]POST['email'];
$reciver = '/* Reciver Email address */';
if (filter_var($reciver, FILTER_VALIDATE_EMAIL)) {
    $subject = $name;
    // To send HTML mail, the Content-type header must be set.
    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'From:' . $email. "\r\n"; // Sender's Email
    //$headers .= 'Cc:' . $email. "\r\n"; // Carbon copy to Sender
    $template = '<div style="padding:50px; color:white;">Hello ,<br/>'
        . '<br/><br/>'
        . 'Name:' .$name.'<br/>'
        . 'Email:' .$email.'<br/>'
        . '<br/>'
        . '</div>';
    $sendmessage = "<div style=\"background-color:#7E7E7E; color:white;\">" . $template . "</div>";
    // Message lines should not exceed 70 characters (PHP rule), so wrap it.
    $sendmessage = wordwrap($sendmessage, 70);
    // Send mail by PHP Mail Function.
    mail($reciver, $subject, $sendmessage, $headers);
    echo "Your Query has been received, We will contact you soon.";
} else {
    echo "<span>* invalid email *</span>";
}
6
ответ дан MathieuF 4 June 2019 в 09:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: