0

如何从用户表中提取电子邮件地址并使用$_SESSION[user_id]变量向该地址发送电子邮件?

在付款过程结束时,我想向用户发送确认电子邮件。用户 ID 存储在会话中,我想向存储在用户表中的电子邮件地址发送确认。

<?php
$to = "recipient@example.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
?>

如何使用查询插入与 $_SESSION[user_id] 变量关联的适当电子邮件?

$q = "SELECT email from users where id='".$_SESSION['user_id']."'";
$r = mysqli_query ($dbc, $q);
$to = "email";
$subject = "Confirmation";
$body = "Hi,\n\nConfirmation?";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}

我已成功发送信息电子邮件,但电子邮件从未到达...在注册过程中,我使用以下方式发送电子邮件:

$body = "Thank you for registering at <...>. Welcome to digital world of knowledge.";
mail ($_POST['email'], 'Registration Confirmation', $body, 'From: admin@ttt.com');
4

3 回答 3

0

您必须根据用户 ID 编写一个选择查询才能收到类似这样的电子邮件

$sql = "SELECT email from user where user_id='".$_SESSION[user_id]."'";

然后使用该电子邮件执行邮件功能

于 2013-04-10T12:50:37.530 回答
0

您需要从用户对象中获取电子邮件地址:

$user  = User::getByID($_SESSION[user_id]);
$email = $user->getEmail();

此代码只是示例性的,它取决于您的用户对象的工作方式。如果您没有,那么我的回答是建议您为自己创建一个用户对象。

于 2013-04-10T12:50:40.763 回答
0

如果没有email addressDatabase, 就不可能做到这一点,

要不然

用户登录成功后,可以再设置一个会话变量

$_SESSION['email'] = 'abc@example.com'
于 2013-04-10T12:52:23.447 回答