【问题标题】:Sending an email to all users via contact form通过联系表格向所有用户发送电子邮件
【发布时间】:2014-08-17 11:36:41
【问题描述】:

我正在尝试将我的所有用户聚集在一起,通过联系表单向他们发送电子邮件。我正在使用 Wordpress 来容纳我的所有用户。

我有一个循环遍历所有用户的脚本,但需要能够一次发送所有用户:

<?php
$wp_user_search = $wpdb->get_results("SELECT ID, user_email FROM $wpdb->users ORDER BY ID");

foreach ( $wp_user_search as $userid ) {
    $user_id       = (int) $userid->ID;
    $user_login    = stripslashes($userid->user_login);
    $email  = stripslashes($userid->user_email);

    $return  = '';
    $return .= "\t" . '<p>'. $email .'</p>' . "\n";

    print($return);
}
?>



        <form action="../mailadmin.php" method="post">
            <input type="hidden" name="email" value="<?php echo $email; ?>">
            <input type="text" name="subject" value="" placeholder="Subject..." style="padding: 10px; border: 1px solid #EEEEEE; width:100%;"> 
            <br><br>
            <textarea onkeyup="textAreaAdjust(this)" name="contentfield" style="max-width: 100%; min-width: 100%; min-height: 200px; padding: 10px; border: 1px solid #EEEEEE;  height:auto; overflow:visible;" placeholder="Please begin typing your message..."></textarea>
            <br><br>
            <button class="amendbutton" type="submit" style="padding: 10px;">Send Message</button>
        </form>
    </div>    
</div>

我处理邮件功能的第二个文件给我带来了一些困难,因为它似乎无法识别我的命名字段,所以我想将它发送给所有用户,通过主题和消息发送,但我不断收到错误说明未定义的变量?

这也是让我烦恼的脚本部分:

$mail->addAddress(stripslashes($_POST["email"]));

$mail->Subject = 'Subject header';
$mail->Body    = 'Subject: ' . $_POST["subject"] . 'Message: ' . $_POST["contentfield"];

【问题讨论】:

  • 所以你只需要在循环中添加mail(...) 并学习如何在php 中创建一个POST 表单?在 html 中使用 IDS 是一个好的开始。
  • 什么是 $mail ? PHPMailer ?
  • 我在哪里添加 add mail() 对不起,我工作了一整天,我的眼睛开始疼了!
  • @djidi 是的,是的

标签: php wordpress forms phpmailer


【解决方案1】:

您不必在 HTML 中添加电子邮件字段,只需在代码中添加密件抄送字段即可发送电子邮件:

$mail = new PHPMailer();

$wp_user_search = $wpdb->get_results("SELECT * FROM $wpdb->users ORDER BY ID");

foreach ( $wp_user_search as $user )
   $mail->AddBCC($user->user_email, $user->user_name); // first var is email, second is name

$mail->Subject = 'Subject header';
$mail->Body    = 'Subject: ' . $_POST["subject"] . 'Message: ' . $_POST["contentfield"];

Check this 查看 PHPMailer 的所有方法。

【讨论】:

  • 那么这将发送给存储在我的 wordpress 后端中的所有用户?
  • 发送电子邮件时必须使用代码来获取所有用户,而不是使用 HTML 并添加密件抄送
  • 我很困惑这需要去哪里以及我需要对我的 php 邮件脚本做些什么以确保它们都在说话,你能使用我的代码并编辑它吗?
  • 那么,一旦填写好联系表格,这是否会向 wordpress 用户数据库中的所有用户发送消息?
  • 是的。这是$mail->AddBCC()的目标,添加多个收件人(在密件中)
猜你喜欢
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 2020-03-23
  • 2012-11-05
  • 2013-05-05
  • 1970-01-01
  • 2017-06-27
相关资源
最近更新 更多