1

嗨,有人可以告诉我以下是否可能吗?

我有一个小的 php 联系表格,它将表格上收集的信息发送到指定的电子邮件地址

$emailaddress=whatever@whatever.com

我想要实现的是,每次表单发送数据时,它都会切换,所以它会执行以下操作......

客户通过提交发送数据到 $emailaddress1=whatever@whatever.com

下一位客户将其提交的数据发送到 $emailaddress2=whoever@whoever.com 下一位客户再次通过提交将数据发送到 $emailaddress1=whatever@whatever.com,以此类推。

基本上每一次其他发送都会将电子邮件地址切换到与上次发送不同的电子邮件地址。

提前感谢蒂莉

4

3 回答 3

2

从您评论中的讨论来看,我想说最好的答案是使用一个简单的文件来指示您是将电子邮件发送到地址 1 还是地址 2。如果您只有两个地址,您甚至可以简单地使用文件的存在作为指标。

if (file_exists($filename)) {
    $toAddr = 'whatever@whatever.com';
    unlink($filename); //delete the file
} else {
    $toAddr = 'whoever@whoever.com';
    touch($filename); //create the file empty
}

如果您的使用量很大,您可能会遇到两封电子邮件同时发送到一封电子邮件的情况,但这听起来不是什么大问题。

如果您需要有两个以上的地址,那么只需写出文件并读取值以确定您要将其发送到哪里,而不是删除和创建它。

于 2014-04-30T17:08:06.283 回答
0

由于 Boerema 加上我自己的一些小调整,问题得以解决。

基本上,我只是更改了删除部分,直到处理完表单之后,正因为当显示表单时,它正在删除或创建而不提交。

所以...

在表单本身中,代码是......

$filename = '/full/path/to/tempfile/sent.txt'; 
if (file_exists($filename)) { //
$recipients = 'number1emailaddress@test.com';
} else {
$recipients = 'number2emailaddress@test.com';
}

然后表格处理完毕后

$filename = '/path/to/your/tempfile/sent/sent.txt';

if (file_exists($filename)) {
unlink($filename); //delete the file
} else {
fopen($filename, 'w') or die('Cannot open file:  '.$filename); //implicitly creates file
}

这样,文件只会在实际提交时被删除/创建,效果很好

非常感谢 Boerema

于 2014-04-30T21:19:25.783 回答
0

您可以尝试使用计数器来了解要发送到哪封电子邮件。

$counter = 0;

if ( $_SERVER['REQUEST_METHOD'] == 'POST' ){

    $counter++;

    if ( $counter % 2 == 0 ){

        $email = 'email@address.com';

    } else {

        $email = 'email2@address.com';

    }

}

这将使不同的电子邮件处于偶数和赔率。

于 2014-04-30T17:16:04.693 回答