【问题标题】:php mail function multiple emails and mysql_fetch_arrayphp邮件功能多个电子邮件和mysql_fetch_array
【发布时间】:2016-01-23 16:37:05
【问题描述】:

是的,我是编码的初学者。

所以我首先要获取用户想要接收电子邮件的电子邮件地址(来自 db)

就像

$query = mysql_query("Select * FROM receivers WHERE id=$id")
    or die(mysql_error()); 

while ($grabit = mysql_fetch_array($query)) {

    $iAmReceiver = $grabit['email'];
}

因此,如果用户有一封电子邮件将简单地存储在 $iAmReceiver 中,但如果用户有多个电子邮件地址用于接收电子邮件怎么办?

接下来我使用php邮件功能发送电子邮件,一个电子邮件地址我可以简单地做

$ToEmail = "$iAmReceiver;
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");

所以在多个电子邮件地址发送邮件直接取决于我如何存储多个电子邮件地址??..... 像数组这样的东西??

【问题讨论】:

  • 在您的代码建议的数据库模型中,假设 id 是您的主键或至少是唯一的,您的查询返回多行的可能性很小。
  • @ChristianBock 实际上它是一个单独的接收者表,我已经对其进行了编码,每当用户可以添加一个新的电子邮件地址时,它都会在 db 中添加一个带有用户 ID 和电子邮件地址的新行.不知道人们是否这样做,但不知何故它起作用了.....

标签: mysql arrays php


【解决方案1】:

我猜这样的东西应该可以工作

while ($grabit = mysql_fetch_array($query)) {
    $receivers[] = $grabit['email'];
}

$ToEmail = implode("," , $receivers);

另外请考虑升级到 mysqli_* 或 pdo。 mysql_* 已弃用。

【讨论】:

  • 出乎意料 --- 完美地工作......如果这些愚蠢的蚊子不再吃我,我会自己做的。
  • 这是一个完美的方法,可以通过向所有人公开他们的电子邮件来彻底激怒您的用户。考虑在密件抄送字段中将电子邮件与您的用户一起发送给您自己,否则请准备好让一些非常愤怒的用户。
  • @rickclader 哎呀,....你只是想给我发回一个电话来解决我的担忧,...但在我的情况下,其他电子邮件地址将属于同一用户,而且他们肯定不会记住,.....:P
  • @RickCalder 我相信他说... but what if a user have many email addresses for receiving emails? 这意味着它们是同一个人的电子邮件。
  • 对。同一用户多封电子邮件,很公平。
【解决方案2】:

您可以像这样创建一个以逗号分隔的电子邮件:

while ($grabit = mysql_fetch_array($query)) {
    $iAmReceiver .= $grabit['email'].',';
}

$iAmReceiver = rtrim($iAmReceiver,',')

$ToEmail = "$iAmReceiver";

//You can pass comma separated email id as first argument of email if you want to send mail on multiple emails

 mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");

【讨论】:

    猜你喜欢
    • 2014-01-05
    • 2014-05-23
    • 2010-11-25
    • 1970-01-01
    • 2012-12-12
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    相关资源
    最近更新 更多