Куда помещать заголовки php $ в специальную контактную форму, чтобы изменить адрес электронной почты «От» - PullRequest
5 голосов
/ 19 июня 2019

Я пытаюсь использовать $headers = "From: webmaster@example.com\r\n"; в PHP, чтобы установить адрес электронной почты «от» в контактной форме на «name@companyname.com».

Это относится к этому ответу Функция PHP mail 'from' address Я довольно новичок в php, поэтому извиняюсь, если ответ очевиден, но это сводит меня с толку.

Код для формы ниже, но я не могу заставить его работать? Кто-нибудь знает, как / где я бы интегрировал это с кодом ниже.

С уважением,

<?php 

    if($_POST['submit']) {

        if(!$_POST['name']) {
            $error="<br>- Please enter your name";
        }
        if(!$_POST['email']) {
            $error.="<br>- Please enter your email";
        }
        if(!$_POST['telephone']) {
            $error.="<br>- Please enter your telephone number";
        }
        if(!$_POST['message']) {
            $error.="<br>- Please enter your message";
        }
        if(!$_POST['checkbox']) {
            $error.="<br>- Please confirm you agree to the Privacy Policy";
        }

        if ($error) {
            $result='<div class="alert error">Whoops, there is an error. Please correct the following: '.$error.'</div>';
        } else {
        mail("name@company.com", "Contact Message", "Name: ".htmlspecialchars($_POST['name'])."
            Email: ".htmlspecialchars($_POST['email'])."
            Telephone: ".htmlspecialchars($_POST['telephone'])."
            Company: ".htmlspecialchars($_POST['company'])."
            Budget: ".htmlspecialchars($_POST['budget'])."
            Message: ".htmlspecialchars($_POST['message']));

            {
                $_POST= array();
                $result='<div class="alert thankyou" role="alert">THANK YOU! WE\'LL BE IN TOUCH SHORTLY...</div>';
            }

        }
    }
?>

1 Ответ

5 голосов
/ 26 июня 2019

Сейчас вы передали 3 параметра в функцию mail(), четвертый параметр - для заголовков.

Так что просто передайте эту строку в качестве четвертого параметра после сообщения. Точнее:

<?php 

    if($_POST['submit']) {

        if(!$_POST['name']) {
            $error="<br>- Please enter your name";
        }
        if(!$_POST['email']) {
            $error.="<br>- Please enter your email";
        }
        if(!$_POST['telephone']) {
            $error.="<br>- Please enter your telephone number";
        }
        if(!$_POST['message']) {
            $error.="<br>- Please enter your message";
        }
        if(!$_POST['checkbox']) {
            $error.="<br>- Please confirm you agree to the Privacy Policy";
        }

        if ($error) {
            $result='<div class="alert error">Whoops, there is an error. Please correct the following: '.$error.'</div>';
        } else {
        mail("name@company.com", "Contact Message", "Name: ".htmlspecialchars($_POST['name'])."
            Email: ".htmlspecialchars($_POST['email'])."
            Telephone: ".htmlspecialchars($_POST['telephone'])."
            Company: ".htmlspecialchars($_POST['company'])."
            Budget: ".htmlspecialchars($_POST['budget'])."
            Message: ".htmlspecialchars($_POST['message']),
            "From: webmaster@example.com\r\n"
        );

            {
                $_POST= array();
                $result='<div class="alert thankyou" role="alert">THANK YOU! WE\'LL BE IN TOUCH SHORTLY...</div>';
            }

        }
    }
?>

Подробнее: https://www.php.net/manual/en/function.mail.php

Также для транзакционной электронной почты, проверьте API, такие как mailgun, sendgrid и т. Д.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...