将电子邮件副本发送给发件人——PHP联系脚本。

4
我使用以下PHP脚本从我的联系表格中获取电子邮件。我想将同样的邮件副本也发送给发件人邮箱。如何做到这一点?可以有人在我的脚本中添加几行来实现吗?
可以像下面这样在$emailTo中分隔多个电子邮件地址:$emailTo = 'owner@website.com, $email';
if(!isset($hasError)) {

    $emailFrom = 'smptcontactemail@website.com';
    $emailTo = 'owner@website.com';
    $subject = 'Submitted message from '.$name;
    $sendCopy = trim($_POST['sendCopy']);
    $body = "Name: $name \n\nEmail: $email \n\nComments: $comments";
    $headers = 'From: ' .' <'.$emailFrom.'>' . "\r\n" . 'Reply-To: ' . $email;

    mail($emailTo, $subject, $body, $headers);

    // set our boolean completion value to TRUE
    $emailSent = true;
}

可以添加另一个函数来实现。但是我正在寻找在同一个函数中实现的其他简单方法 :)

附注:我想向发件人添加一行额外的内容,如“您发送给xxx所有者的邮件副本”


1
PHP内置的mail()函数在功能上严重缺乏,而且一旦您开始编写自己的邮件头部,安全性往往会成为一个问题(您的代码很容易被黑客攻击以发送垃圾邮件)。因此,我强烈建议在编写PHP程序发送电子邮件时使用像PHPMailer或Swiftmailer这样的优秀邮件类。 - Spudley
5个回答

4
那将是:
$headers .= 'Cc: anotheremail@domain.net' . "\r\n";

2
希望这可以帮到您。
<?php
            $name = $_POST['name'];
            $email_address = $_POST['email'];
            $phone = $_POST['phone'];
            $course = $_POST['course'];

// Create the email and send the message

            $to = $email_address; //This is the email address of the person who filled the form, this email will be supplied by the sender.

            $email_subject = "Website Contact Form:  $name";

            $email_body = "You have received a new message from your Website contact form.\n\n"."Here are the details:\n\n
            Name: $name\n\n
            Email: $email_address\n\n
            Phone: $phone\n\n
            Course:\n$course";

            $headers = "From: noreply@yourdomain\n"; // This is the email address the generated message will be from. We recommend using something like noreply@yourdomain.com.

            $headers .= 'Cc: youremail@yourdomain.com' . "\r\n"; // Add your email address  replacing yourname@yourdomain.com - This is where the form will send the message to.

            $headers .= "Reply-To: $email_address"; 

            mail($to, $email_subject,$email_body,$headers);

            return true;            
?>

1

请参见php.net/mail示例#4,了解如何扩展$additional_headers参数以添加抄送收件人:

$headers = 'From: ' .' <'.$emailFrom.'>' . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'Cc: ' .' <some@mail.com>';


0

你可以通过编写代码来实现它

$emailTo = 'owner@website.com, customer@website.com';

我想向发件人发送一些额外的内容,比如您的电子邮件副本或其他内容...... - BlackCoder
1
在这种情况下,您需要发送两封单独的电子邮件,因此需要调用mail()函数两次。 - Reeno

-2
您可以尝试像这样发送抄送副本到发件人电子邮件。
$headers["From"] = "$from";
$headers["To"] = "$email";
$headers["Subject"] = $subject;
$headers['Cc'] = '$from';

mail() 函数期望附加参数为字符串,而不是数组。 - Reeno
这个概念是正确的,但代码不对,你需要附加它,请参考Alma Do Mundo的答案。 - Edward

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接