【问题标题】:send email to address on MYSQL向 MYSQL 上的地址发送电子邮件
【发布时间】:2016-08-10 20:57:32
【问题描述】:

我有一个带有 EMAIL 行的 MySQL 数据库。
用户执行搜索,相关信息以<table> 格式出现(地址 1、地址 2、电话、传真、电子邮件等)。
<tabel> 中,最后一列有一个“电子邮件”按钮,如果您单击它,系统会自动向该电子邮件地址发送一封电子邮件。

我在这里找到了一篇实际上对我有用的文章,但它会向数据库中的每个人发送电子邮件。如何修改此 php 以仅向该特定行发送电子邮件。

这是我发现的:

mysql_connect('localhost', 'mysql_user', 'mysql_password') or
    die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT email FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    sendMail($row[0]);
}
mysql_free_result($result);

function sendMail($to){
$subject = 'AC the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
  'Reply-To: webmaster@example.com' . "\r\n" .
  'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
  1. 添加/替换什么以将电子邮件发送到 DB TABLE 中的单个行?
  2. 当此代码发送到我的 gmail 帐户的电子邮件时,我可以看到发件人是:“webmaster@example.com ip-XXX-XXX-XXX-XXX.yyyyyyyyyyy.zzzz.net”(这是我服务器的 IP) ....为什么会这样???

我已在此代码中添加以下内容,以查看它是否选择了正确的记录(确实如此):

  mail($to, $subject, $message, $headers);

      echo 'email has been sent to: ' . $to . '<br/>';
  }

发送电子邮件后,它会将电子邮件地址列出回给我,并且所有电子邮件地址都会收到电子邮件...

感谢您的帮助!

【问题讨论】:

  • 您需要一些数据来识别要发送电子邮件的个人用户,例如用户名或用户 ID,以便您的数据库查询更具体,例如 SELECT email FROM mytable WHERE userid = '136';
  • 您发现的任何使用mysql_* 函数的代码示例都可以安全地丢弃,因为它们要么非常陈旧,要么过时,要么质量很差。您应该为所有新项目使用 PDO 或 mysqli。

标签: php mysql email


【解决方案1】:

1:添加/替换什么以将电子邮件发送到 DB TABLE 中的单个行? 您可以添加条件查询来获取特定用户的电子邮件,例如:

SELECT email FROM mytable where <your condition>

2:当此代码发送到我的 gmail 帐户的电子邮件时,我可以看到发件人是:“webmaster@example.com ip-XXX-XXX-XXX-XXX.yyyyyyyyyyy.zzzz.net”(这是我的服务器的IP)....为什么会这样???

默认显示服务器默认电子邮件地址,您也可以更新它。为此,请点击链接:Change outgoing mail address from root@servername - rackspace sendgrid postfix

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 2017-03-01
    • 1970-01-01
    • 2014-07-20
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 2012-03-31
    相关资源
    最近更新 更多