php邮件错误域丢失或格式错误< eol>

guykilcj  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(455)

我正在尝试向数据库中设置的客户电子邮件发送邮件。

$subject = 'Testing PHP Mail';
$txt = 'This mail is sent using the PHP mail function';
$headers = "FROM: test@gmail.com";
$query = ("SELECT email FROM ps_customer where id_customer = 2");
$result = $dbc->query($query);
$row = $result->fetch_assoc();
echo $row['email'];
$to_email = (string)$row;

//while ($row = $result->fetch_assoc()) {
//    echo $row['email'];
//    $to_email = (string)'$row <@>';
    if (mail($to_email, $subject, $txt, $headers)) {
        echo "send";
    } else {
        echo "failed";
    }

这是我的代码,需要将电子邮件发送到数据库外的电子邮件。
但当我试图发送它时,我得到了错误::域丢失或格式不正确

ki0zmccv

ki0zmccv1#

你只需要地址,而且它是你获取的唯一字段,所以我选择:

$query = ("SELECT email FROM ps_customer where id_customer = 2");
$result = $dbc->query($query);
$row = $result->fetch_row();
$to_email = $row[0];

不需要为此使用assoc数组。
你没有提到,但是你发送的消息可能会被拒绝。你是通过 mail() ,这意味着你不是通过gmail的服务器发送邮件,而是使用gmail发件人地址。这是伪造的,将意味着你的邮件将被反弹或垃圾邮件过滤。你不能用 mail() (除了不使用gmail作为发件人地址);您需要使用phpmailer(您为这个问题添加了标签)通过gmail发送smtp。

相关问题