PHP mail()不起作用

时间:2016-01-31 05:54:01

标签: php html email html-email

所以,我在过去一小时左右一直在研究这个邮件功能,但我无法弄清楚它为什么不发送电子邮件!我已多次尝试,改变代码并尝试使其完美,但仍然,我还没有收到测试邮件......

我的电子邮件中有HTML,但这不是问题,因为我在没有HTML的情况下对其进行了测试。

我的PHP:

$to = $register_data['email'];
        $subject = "Welcome!";
        $body = '
            <html>
                <head>
                    <style>
                        body{
                            background-color: #FFF;
                            font-family: arial;
                            margin: 0;
                            padding: 0;
                        }
                        a{
                            color: inherit;
                            text-decoration: none;
                        }
                        .outer-email{
                            width: 80%;
                            height: auto;
                            margin: 0 auto;
                        }
                        .info-email{
                            width: 80%;
                            margin: 120px auto;
                        }
                        .outer-header h3{
                            font-size: 2.9em;
                            color: #151515;
                            margin: 0;
                        }
                        .inner-email{
                            margin-top: 20px;
                        }
                        .inner-email span{
                            font-size: 1.3em;
                            color: #151515;
                        }
                    </style>
                </head>
            <body>
                <div class="outer-email">
                    <div class="info-email">
                        <div class="outer-header">
                            <h3>Welcome!</h3>
                        </div>
                        <div class="inner-email">
                            <span>Welcome, $register_data['fname'];
                            </span>
                        </div>
                    </div>
                </div>
            </body>
            </html>
        ';
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        $headers .= 'From: Domain <noreply@domain.com>';

        mail($to, 'Welcome!', $body, $headers);

请不要将此作为副本分类,因为我已经测试了关于此主题的其他论坛问题,但他们并没有解决我的问题! :(

由于

编辑: 我的注册功能在页面上:

if(empty($_POST) === false && empty($errors) === true) {
            $register_data = array(
                'username'      => $_POST['username'],
                'password'      => $_POST['password'],
                'fname'         => $_POST['fname'],
                'lname'         => $_POST['lname'],
                'email'         => $_POST['email'],
                'type'          => $_POST['type'],
                'email_code'    => md5($_POST['username'] + microtime())
            );
            register($register_data, $conn);
            redirect('register.php?success');
            exit();
        } else if (empty($errors) === false)  {
            echo error_output($errors);
        }

UPDATE ::

好的,所以我发现如果我将它上传到我发布的服务器上,它确实有用,所以它一定是我本地主机上的问题...谢谢@MarkP

2 个答案:

答案 0 :(得分:3)

好的,在实时聊天后发现OP正在使用本地服务器(XAMPP)。

我建议他们转到How to configure XAMPP to send mail from localhost?

了解如何激活邮件服务器。

@Caelan Grgurovic如果这是正确的解决方案,请接受我的回答,以便人们不会花时间试图找出问题所在。

修改

在您的服务器上试试这个

新页面test.php

<?php
 mail('youremail@email.com', 'Welcome!', 'body');
?>

obv更改您的电子邮件,如果这不起作用,那么您没有正确设置服务器上的电子邮件,请尝试使用Web主机服务器。

答案 1 :(得分:2)

不确定是否属于这种情况,但您的analogWrite()语法错误,更改

$body

<span>Welcome, $register_data['fname'];