0

我已经制作了我的联系表格,它运行良好,只是当有人向我发送消息时,它没有任何格式,如下图所示:

没有任何样式的电子邮件,只有行文本

这是我使用的 .php 代码:

    $formdata = array (
       'name' => $name,
       'city' => $city,
       'message' => $message
    );

    if ( !( $formerrors ) ) :
        $to  = "me@sipledomain.com";// input my name address to get mail to
        $subject = "From $name";
        $message =  json_encode($formdata);

        if ( mail( $to, $subject, $message ) ):
           $msg = "Thanks for filling out the form, i will contact you soon";
        else:
           $msg = "Problem sending the message";
        endif; // mail form data
    endif; // check for form errors
 endif; //form submitted

提前致谢

4

2 回答 2

1

json_encode()将您的数组编码为单行文本,旨在稍后解码,而不是供人类阅读。

相反,我会通过编写您自己的 HTML 或给它换行来自己构建您的电子邮件。您可以通过解析/迭代您的数组以编程方式进行。

例如:

$message = 'Name: '.$formdata['name'].'<br />'.$formdata['city'].'<br />'.'...';


如果你真的想编码成 JSON,你需要在编码后解析 JSON 并做同样的事情。

您可能希望在调用被调用时查看一个标志,该标志json_encode()JSON_PRETTY_PRINT保留空格。更多信息:http ://www.php.net/manual/en/json.constants.php

正在使用:$message = json_encode($formdata, JSON_PRETTY_PRINT);


为了玩 JSON,我喜欢使用http://jsonmate.com/ 之类的工具,将 JSON 格式化为整齐的树。

于 2013-10-10T03:29:58.277 回答
0

如果您愿意,可以通过将所有内容包装在标准 HTML 标记中,以格式化的 HTML 格式发送电子邮件。否则,PHP 以未格式化的形式发送消息,因此用于\n换行等。

于 2013-10-10T02:24:18.533 回答