使用php邮件功能XAMPP 5.5-19发送邮件

时间:2014-12-13 17:59:12

标签: php html5 forms email sendmail

我是php的新手,想要编写一个程序,从表单接收信息并使用php邮件功能发送该信息。我正在使用XAMPP 5.5-19进行设置。我研究了一些关于如何使这个程序工作但没有成功的主题。当我查看我的phpinfo();时,它会读取以下内容:

SMTP = smtp.gmail.com
smtp_port = 587
sendmail_path = / usr / sbin / sendmail -t -i -F
sendmail_from =没有值

我的代码

    

</head>
<body>
    <h3>Need More Information Contact Us!</h3>
    <div>
        <form method="post" action="">
            <label for="name">Name</label>
            <div>
                <input type="text" name="name" />
            </div>
            <label for="tele">Number</label>
            <div>
                <input type="text" name="tele" />
            </div>
            <label for="subject">Subject</label>
            <div>
                <textarea rows="5" cols="40" name="subject"></textarea>
            </div>
            <input type="submit" value="Submit" name="sub" />
        </form>
        <?php
            if(isset($_POST['sub']))
            {
                $name = $_POST['name'];
                $number = $_POST['tele'];
                $subject = $_POST['subject'];
                $to = 'example@gmail.com';
                mail($to, $subject, $name,$number);
            }
        ?>
    </div>
</body>

我知道这是一个反复出现的话题,但我对我研究过的文章没有运气。感谢所有提供意见和反馈的人。

3 个答案:

答案 0 :(得分:1)

你在使用localhost吗?

如果是,那么SMTP不能在localhost上运行,否则你的代码就完美了。

答案 1 :(得分:1)

将你的PHP部分放在任何HTML之前。这样,如果您的用户提交有效,您可以重定向该页面。

参见php标题。还要查看Web上的用户数据验证方法。基本规则,永远不要相信用户提交数据。

话虽如此,在您的表单中添加一个隐藏字段,以便查看何时使用表单。

`<input type='hidden' name='sub' value='1'>`

您的邮件功能基本上有三个部分,第四部分是可选的。你可以用它来获得真正的幻想。

邮件(收件人,主题,留言);

所以在你的代码中;

$msg = $name."\r\n";
$msg .= $number."\r\n";
mail($to, $subject, $msg);
你可以验证;     $ mail_status = mail($ to,$ subject,$ msg);     如果($ mail_status)     {做某事}`     else {在错误时执行此操作}

在xampp上,如果没有错误,它将是空白的,或者它会执行{do something},从而解释你如何编写代码

答案 2 :(得分:1)

根据您的phpinfo打开您的sendmail文件夹(/ usr / sbin / sendmail)。 打开sendmail.ini文件中的调试器

; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging
debug_logfile=debug.log

执行新请求并查看debug.log文件的内容。例如,缺少对smtp.google.com的身份验证。

我还想指出,在全新安装时,你必须更新php.ini才能使用sendmail.exe,但我想这已经由你的phpinfo判断了。

修改

可以肯定的是,请检查您的php.ini文件并找到以下行:

sendmail_path = 

如果它前面有;注释,请删除;。 根据我刚刚阅读有关使用MAMP的sendmail的文章,您也可以尝试在路径后输入您的电子邮件地址。

例如:sendmail_path = /usr/sbin/sendmail -t -i -f yourname@example.com

另一件事,因为你找不到sendmail.ini

您的sendmail文件夹中有哪些文件?我相信sendmail脚本在MAMP上没有文件扩展名。在WAMP中它是一个可执行程序(.exe