通过多个电子邮件地址发送邮件

时间:2019-12-08 08:32:03

标签: php html

我有一个HTML表单,客户可以在其中提交表单,该表单应该同时出现在我的电子邮件和客户邮件中。

这是表格的一部分:

<form action="" method="post" id="formName">
    <input type="text" name="client_email" placeholder="Email *" required>
    <button type="submit" name="submit">Submit</button>
</form>

这是PHP的一部分:

if (isset($_POST['submit'])) {
    $client_email = $_POST['client_email'];

    $mail_to = array(
        'my_email@test.com',
        $client_email
    );

    mail(implode(', ', $mail_to), $subject, $body, $header);
}

我不确定为什么我没有收到任何电子邮件。我没有任何错误。

预先感谢

2 个答案:

答案 0 :(得分:1)

根据您输入框的名称是电子邮件。

<form action="" method="post" id="formName">
    <input type="text" name="email" placeholder="Email *" required>
    <button type="submit" name="submit">Submit</button>
</form>

所以您必须在php代码中使用相同的名称。

$client_email = $_POST['email'];

使用此代码。

if (isset($_POST['submit'])) {
    $client_email = $_POST['email'];

    $mail_to = array(
        'my_email@test.com',
        $client_email
    );

    mail(implode(', ', $mail_to), $subject, $body, $header);
}

答案 1 :(得分:0)

要发送给多个收件人,您可以发送单独的电子邮件,可以在消息的构造中使用CCBCC标头,或将多个电子邮件地址连接成一个逗号分隔的字符串。

没有必要显示FROM字段,但是您应该这样做,以帮助避免将电子邮件分类为垃圾邮件。

<?php
    if( $_SERVER['REQUEST_METHOD'=='POST' && !empty( $_POST['email'] ) ){

        $email=filter_var( filter_input( INPUT_POST, 'email', FILTER_SANITIZE_EMAIL ), FILTER_VALIDATE_EMAIL );
        if( $email ){

            $from='webmaster@domain.com';
            $subject='A monkey stole my banana';
            $message=implode( PHP_EOL, $_POST );

            $to=implode(',', array(
                'my_email@test.com', $email
            ));
            $headers=sprintf(
                "From: %s\r\n"
                $from
            );

            $status=@mail( $to, $subject, $message, $headers );

        }
    }
?>

<form method='post'>
    <input type='text' name='email' placeholder='Email *' required>
    <input type='submit' />
</form>