发送电子邮件到多个地址PHP

时间:2018-08-02 12:33:11

标签: php html forms email

我有一个HTML表单,您可以在其中输入电子邮件和消息。 提交此表单后,我希望将电子邮件发送到我的电子邮件(固定)和通过该表单填写的电子邮件中。

我可以使用我的电子邮件,但是似乎无法将HTML表单中的电子邮件发送到PHP的发送列表中。有什么建议吗?

代码(html):

<form id="contact-form" method="post" action="js/contact.php" role="form">
  <div class="messages"></div>
  <div class="controls">
    <div class="row">
      <div class="row">
    <div class="col-md-6">
      <div class="form-group">
        <label for="form_email">Email</label>
        <input id="form_email" type="email" name="email" class="form-control" placeholder="Vul hier je email adres in" required="required" data-error="Valid email is required.">
        <div class="help-block with-errors"></div>
      </div>
    </div>
  </div>
  <div class="row">
    <div class="col-md-12">
      <div class="form-group">
        <label for="form_message">message</label>
        <textarea id="form_message" name="message" class="form-control" placeholder="Vul hier een eventuele opmerking of message in." rows="4" required="required" data-error="Please,leave us a message."></textarea>
        <div class="help-block with-errors"></div>
      </div>
    </div>
    <div class="col-md-12">
      <input type="submit" class="btn btn-success btn-send" value="Versturen">
    </div>
  </div>
</div>
</form>

代码PHP:

<?php

$from = 'info@mywebsite';

$sendTo = 'myemail@gmail.com'; //Here the email from the form should be   added

$subject = 'Nieuwe reservering';

$fields = array('kosten' => 'kosten' , 'name' => 'Naam', 'surname' => 'Achternaam', 'phone' => 'Telefoonnummer', 'kamer' => 'Kamer', 'aankomst' => 'aankomst', 'vertrek' => 'vertrek', 'email' => 'Email', 'message' => 'Bericht');

$okMessage = 'Je bericht is verzonden!';

$errorMessage = 'Oei er ging iets fout, geeft niks. Probeer het later opnieuw.';

 error_reporting(E_ALL & ~E_NOTICE);

try {

    if(count($_POST) == 0) throw new \Exception('Form is empty');
    $emailText ="<table>";

    $emailText .="<p>Bedankt voor uw reservering, hieronder de ingevulde info:</p><br><br>";
    foreach ($_POST as $key => $value) {
        if (isset($fields[$key])) {
            $emailText .= "<tr><td>{$fields[$key]}</td>";
            $emailText .= "<td>$value</td></tr>";
        }
    }
    $emailText .="<br><br><p>Voor vragen of wijzigingen mail naar: info@bmyemail</p>";

    $emailText .="</tr></table>";
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers = array('Content-type:text/html;charset=UTF-8";',
        'From: ' . $from,
        'Reply-To: ' . $from,
        'Return-Path: ' . $from,
        );

    mail($sendTo, $subject, $emailText, implode("\n", $headers));

    $responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (\Exception $e){
    $responseArray = array('type' => 'danger', 'message' => $errorMessage);
}


if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&         strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
     $encoded = json_encode($responseArray);

     header('Content-Type: application/json');

     echo $encoded;
 } else {
     echo $responseArray['message'];
 }

2 个答案:

答案 0 :(得分:-1)

电子邮件处理完毕后,您只需发送两次:

<?php
    mail($addr1, $subject, $message, $header);
    mail($addr2, $subject, $message, $header);
?>

您还可以连接不同的地址(通过将输入更改为 textarea ,并每行写一个地址,我设法将邮件发送到了不同的地址)。

祝你好运!

答案 1 :(得分:-1)

您可以这样指定所有收件人:(在此处选中official guideline

$sendTo = 'myemail@gmail.com, abc@example.com, xyz@example.com';  // note the comma
//actual message
$message = "Message Content";

mail($sendTo, $subject, $message));

希望有帮助! :)