首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用配置PHP文件和PHP向多个地址发送电子邮件

问使用配置PHP文件和PHP向多个地址发送电子邮件
EN

Stack Overflow用户
提问于 2021-10-25 16:20:26
回答 2查看 243关注 0票数 0

我设置了一个config.php文件,使我的客户很容易添加电子邮件,主题和其他发送信息的在线表单在他们的网站上。看起来是这样的:

代码语言:javascript
复制
<?php
$config = [
    "host" => "xxx",
    "username" => "xxx",
    "password" => "xxx",
    "secure" => "ssl", // ssl or tls
    "port" => 465,
    "sendTo" => "abc@email.com",
    "sendToBCC" => "xyz@email.com",
    "from" => "no-reply@email.com",
    "fromName" => "Contact Form"
];

我现在面临的挑战是发送多封电子邮件。我尝试过"sendTo" => "abc@email.com, efg@email.com, hik@email.com",,但是它会抛出无效的电子邮件错误。

在发送文件中,我们有以下代码:

代码语言:javascript
复制
//Recipients
$mail->setFrom($config['from'], $config['fromName']);
$mail->addAddress($config['sendTo']);
$mail->addCC($config['sendToCC']);          
$mail->addBCC($config['sendToBCC']);
$mail->addAddress($_POST['email']);

因此,我猜$mail->addAddress($config['sendTo']);在挑选多封电子邮件时遇到了麻烦。如何编辑此代码以允许多个收件人?将非常愿意确保我们的客户可以轻松地添加电子邮件在config.php文件,而不是发送文件。

EN

Stack Overflow用户

发布于 2021-10-25 17:53:16

您可以支持这两种情况:

代码语言:javascript
复制
$addrs = preg_split('#[\\s;,]+#', $config['sendTo'], -1, PREG_SPLIT_NO_EMPTY);
foreach ($addrs as $addr) {
    $mail->addAddress($addr);
}

这将将一个"joe@mail1.com; jack@mail2.com, jill@mail3.com jane@mail4.com"分解为四个地址,并将它们全部添加。一个地址将浪费几个周期来转换成一个单元素数组,但也同样有效。

您还可能希望通过filter_var筛选filter_var,使用array_unique,如果计数($addrs)为零,则不做任何操作,这意味着没有有效地址可用:

代码语言:javascript
复制
function filterMail($emails) {
    $emails = array_map('trim', $emails);
    $emails = array_filter($emails);
    $emails = array_unique($emails);
    $emails = array_map(
        function ($email) {
            return filter_var($email, FILTER_VALIDATE_EMAIL);
        },
        $emails
    );
    $emails = array_filter($emails);
    $emails = array_values($emails);
    return $emails;
}
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69711547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档