在php表单上发送邮件提交

时间:2017-01-20 14:39:19

标签: php

想在php表单上发送邮件提交。但是下面的代码不起作用。不知道我哪里出错了。

<input name="add" type="submit" id="add" value="Send Requets">

<?php
    if (isset($POST['add'])) {
        $From ='xxxxx@hotmail.com';
        $To = 'xxxxx@yahoo.com';
        $Subject = 'Leave Request';
        $body = 'You have received a leave request';
        $headers = 'From: $From \r\n';
        mail($To, $Subject, $body, $headers);
    }
?>

2 个答案:

答案 0 :(得分:0)

你正在localhost上运行这个功能,记住!邮件功能不适用于localhost!如果你想在localhost上发送邮件,你必须做SMTP配置!或者您必须将此代码上传到开发服务器,它将在那里正常工作

答案 1 :(得分:0)

好吧,因为你使用localhost,除非你配置localhost发送电子邮件,否则这不会起作用。

您可以使用sendmail包从localhost发送邮件,在XAMPP中建立sendmail包。因此,如果您正在使用XAMPP,那么您可以轻松地从localhost发送邮件。

例如,您可以为gmail配置C:\xampp\php\php.ini and c:\xampp\sendmail\sendmail.ini以发送邮件。

在C:\ xampp \ php \ php.ini中找到extension = php_openssl.dll并从该行的开头删除分号,以使SSL为ghost for localhost工作。

在php.ini文件中找到[mail function]并更改

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

使用以下代码替换sendmail.ini中的所有现有代码

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=your-gmail-id@gmail.com
auth_password=your-gmail-password
force_sender=your-gmail-id@gmail.com

然后你就完成了:)

请记住使用XAMMP控制面板重新启动服务器,以使更改生效。