想在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);
}
?>
答案 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控制面板重新启动服务器,以使更改生效。