【问题标题】:Sending mail to both sender and receiver using PHPmailer使用 PHPmailer 向发送者和接收者发送邮件
【发布时间】:2017-12-05 15:39:13
【问题描述】:

我在实时服务器中使用 phpmailer 为发件人和收件人发送电子邮件。它工作正常,但我想在发件人副本中包含其他消息作为“感谢您向我们注册”。我做不到。 你能帮忙吗? 到目前为止我尝试过的代码:

<?php
$msg = "";

if (isset($_POST['submit'])) {

    require 'phpmailer/PHPMailerAutoload.php';

    function sendemail($to, $from, $fromName, $body) {
        $mail = new PHPMailer();
        $mail->setFrom($from, $fromName);
        $mail->addAddress($to);

        $mail->Subject = 'Contact Form - Email';
        $mail->Body = $body;
        $mail->isHTML(false);
        return $mail->send();
    }
    function sender_mail($to, $from, $fromName, $body) {
        $mail = new PHPMailer();
        $mail->setFrom($from, $fromName);
        $mail->addAddress($to);

        $mail->Subject = 'Copy Contact Form - Email';
        $mail->Body = $body . 'Thanks for registering with us';
        $mail->isHTML(false);

        return $mail->send();
    }
    $name = $_POST['username'];
    $email = $_POST['email'];
    $body = $_POST['body'];
   sendemail('abc@domain.com', 'xyz@domain.com', $name, $body);
    sender_mail('abc@domain.com', $email, $name, $body);  
}?>

【问题讨论】:

  • 您是否尝试过通过添加另一个 PHPMailer 对象来使用我的解决方案
  • 这是作业吗?和this question一样,已经有答案了。

标签: php phpmailer


【解决方案1】:

我总是创建不同的邮件对象来发送另一封电子邮件。所以它总是会选择新消息。

要发送另一封电子邮件,您可以如下更新:

    $mail2 = new PHPMailer();
    $mail2->setFrom($from, $fromName);
    $mail2->addAddress($to);

    $mail2->Subject = 'Copy Contact Form - Email';
    $mail2->Body = $body . 'Thanks for registering with us';
    $mail2->isHTML(false);

    return $mail2->send();

第二个选项是在您的第二封电子邮件上方使用clearAddresses 来清除您之前的消息,如下所示:

    $mail->clearAddresses();

    $mail = new PHPMailer();
    $mail->setFrom($from, $fromName);
    $mail->addAddress($to);

    $mail->Subject = 'Copy Contact Form - Email';
    $mail->Body = $body . 'Thanks for registering with us';
    $mail->isHTML(false);

    return $mail->send();

【讨论】:

  • @Amit Gupta 非常感谢问题已经解决
  • 那是资源的浪费。请参阅this answer 了解更有效的方法。
  • @Synchro 是的,您是对的,但是如果两封电子邮件的正文和主题不同怎么办。我们可以在同一页面中重复 $mail->2 封邮件的正文吗?
  • 是的 - 我的示例显示为每条消息使用不同的 Body,但您也可以同样更改 Subject
  • 好的,我知道了。您已添加 $mail->clearAddresses();清除之前的消息。很好。谢谢你的建议。
猜你喜欢
  • 1970-01-01
  • 2015-07-28
  • 2018-05-17
  • 2021-04-03
  • 2023-03-03
  • 2012-11-25
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多