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

时间:2013-04-10 12:47:33

标签: php mysql

如何从用户表中提取电子邮件地址,并使用$_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');

3 个答案:

答案 0 :(得分:0)

您必须根据用户ID编写一个选择查询,以获取类似这样的电子邮件

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

如果没有从email address获得Database,就无法做到这一点,

或者

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

$_SESSION['email'] = 'abc@example.com'