【问题标题】:Sending email to multiple adressess PHP向多个地址发送电子邮件 PHP
【发布时间】:2019-01-10 05:36:34
【问题描述】:

我有一个 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'];
 }

【问题讨论】:

  • 我看不到你在哪里执行邮件。
  • $sendTo = 'myemail@gmail.com,antheremail@gmail.com,another@gmail.com';
  • @suresh,可以,但我需要填写表格中的电子邮件,而不是固定的
  • 表示需要从html页面输入多封邮件,从db获取?
  • 我认为@FunkFortyNiner 的意思是没有给mail() 打电话,所以从来没有发送过邮件

标签: php html forms email


【解决方案1】:

邮件完成后,您只需发送两次即可:

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

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

祝你好运!

【讨论】:

    【解决方案2】:

    您可以像这样指定所有收件人:(在此处查看official guideline

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

    希望对您有所帮助! :)

    【讨论】:

    • 谢谢!但是,例如,如果我想为通过表格填写的电子邮件选择 abc@example,我该怎么做?
    • 您可以像这样创建一个数组或连接多个收件人:$to = $fist_user_email . ", " . $second_user_email . ", " . $third_user_email;
    猜你喜欢
    • 1970-01-01
    • 2013-10-11
    • 2012-03-31
    • 2014-06-15
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多