1

我有一个很长的 Excel 列表,其中包含用户名、邮件地址和 PIN 码。我想生成一个自动邮件,如“亲爱$name的,你的 PIN 码是$pin”并发送到$mailwhere $name$mail$pin变量将来自一个 excel 文件..(有三列)

任何人都可以分享任何想法或示例代码吗?

编辑赏金 这是我的 csv 文件的屏幕打印。我想从 csv 文件中读取数据作为二维数组并填充电子邮件。

我的 csv 文件

4

4 回答 4

11

这是最好的选择

1. convert Excel to CSV
2. Import CSV to database
3. Fetch the contents of database to your php page.
4. Loop your contents and send mail.

优势 :

  1. 您不想要任何外部库或插件
  2. 简单的编码,(从数据库和邮件中获取数据)

另一种选择是读取 csv 并发送邮件

这是从 CSV 读取数据并发送邮件的代码:这只是一个示例代码,您可以根据您的要求和 csv 字段名称对其进行编辑。

$row              = 1;
if (($handle      = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num      = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";   
        $row++;

        $to          = $data[2]; // as per your CSV shown in question.
        $subject     = 'Your subject';
        $message     = 'Your mail content';
        $headers     =  'From: webmaster@example.com' . "\r\n" .
                        'Reply-To: webmaster@example.com' . "\r\n" .
                        'X-Mailer: PHP/' . phpversion();
        mail($to, $subject, $message, $headers);

    }
}
于 2013-03-06T08:56:03.913 回答
3

首先,如果您不介意使用大型 PHP 库,我肯定会投票支持 PHPExcel ( http://phpexcel.codeplex.com )。您可以逐行解析excel文件以获取用户信息。

其次,如果您有一个大型数据库,您应该考虑使用 SendGrid ( http://sendgrid.com ) 来发送邮件。它们具有最适合所有接收邮件客户端的标头配置。

祝你好运!

于 2013-03-13T08:38:05.943 回答
2

使用此软件包,您可以阅读 XLS 文件:http ://code.google.com/p/php-excel-reader/ (使用简单,示例很多)。它将 XLS 文件解析为关联数组。在此之后,您可以遍历数组,从中获取您需要的数据,并将参数传递给邮件函数。(但我建议不要使用普通的邮件功能,而是使用phpMailer,http ://phpmailer.worxware.com/ )

正如另一位评论者所说,您可以将 XLS 文件转换为 csv。在这种情况下,请使用 PHP http://php.net/manual/en/function.fgetcsv.php的 fgetcsv 函数。

于 2013-03-06T09:00:05.920 回答
0

这不是 PHP 解决方案,但由于这是一次性需求,因此推出自己的解决方案毫无意义。您可能想尝试一些更简单的东西。

我最近将我的邮件服务器连接到我的 gmail 帐户(作为别名),并利用了人们制作的众多可用邮件合并程序之一。它很简单:

  1. 使用 $%Name% 和 $%PIN% 等占位符值创建电子邮件,并将其保存为草稿。
  2. 在您的谷歌驱动器中打开一个邮件合并电子表格,粘贴您的源数据,然后单击运行。

您还可以尝试任意数量的免费打包邮件合并解决方案,例如xsMerge chrome 应用程序。

于 2013-03-12T17:17:18.817 回答