使用 MYSQL db 中的正文通过 PHP 发送电子邮件并解析 \n

Posted

技术标签:

【中文标题】使用 MYSQL db 中的正文通过 PHP 发送电子邮件并解析 \\n【英文标题】:Sending an email via PHP with the body in MYSQL db and parsing \n使用 MYSQL db 中的正文通过 PHP 发送电子邮件并解析 \n 【发布时间】:2017-12-22 19:04:46 【问题描述】:

我正在尝试通过 php 发送电子邮件,电子邮件的正文存储在 mysql 数据库中。出于某种原因,当我将正文硬编码为字符串时,它将“\n”之类的字符转换为分节符,但是当它从 MYSQL 数据库中提取时,它会留下“\n”。任何人都知道为什么会这样以及如何解决?我尝试将其转换为字符串,但无济于事。

代码:

    $stmt = $conn->prepare("SELECT * FROM Tickets LIMIT 1");
    $stmt->execute();
    while($ticket = $stmt->fetch(PDO::FETCH_ASSOC)) 
        $ticket_queue_id = $ticket["ticket_queue_id"];
        $subject = "test";
        $body = $ticket["body"];
        $headers = "From: Email";
        mail($recipient,$subject,$body,$headers);
        echo "Sent test";
    

"Tickets" 是一个 MYSQL 表,其中 $ticket["body"] 存储为 varchar。

在电子邮件中,上面的代码在正文中给出了类似“Hello\n\world”的内容,

虽然

        $subject = "test";
        $body = $ticket["body"];
        $headers = "From: Email";
        mail($recipient,$subject,$body,$headers);

看起来像:

“你好

世界”

谢谢!

【问题讨论】:

用空格替换它? 我需要它作为一个段落中断!空白显示得很好。 【参考方案1】:

找到答案了!必须用 stripcslashes 封装 $ticket["body"]。从这里找到:PHP: Convert single-quoted string into double-quoted

【讨论】:

以上是关于使用 MYSQL db 中的正文通过 PHP 发送电子邮件并解析 \n的主要内容,如果未能解决你的问题,请参考以下文章

从db获取数据并通过PHP中的Mailchimp发送邮件

将表情符号从 php Web 应用程序传递到 Oracle db 和 mysql

Android:如何在不使用 JDBC、PHP 或任何其他网络服务的情况下将数据发送到 MySQL DB? [复制]

我无法使用 php mysql 查询中的时间函数找到该行是不是已存在于 mysql db 中?

我想要来自 android 中 MMS db 的彩信号码、发送/接收、正文和附件详细信息...怎么做?

使用 PHP 从 MySQL DB 更新 HTML 组合框