Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不向用户发送邮件_Php_Email - Fatal编程技术网

Php 不向用户发送邮件

Php 不向用户发送邮件,php,email,Php,Email,嗨,我正在创建一个表单,在其中输入用户详细信息,并通过电子邮件向他们提供用户名和密码,以便登录 问题:使用post方法,我想向用户发送电子邮件。 但它显示已发送但尚未收到的电子邮件 如果直接给收件人地址,则发送电子邮件。 美元至:email@domain.com-邮件已发送 使用“发送邮件”在本地主机中发送电子邮件 我的表格是 <form name="assignteacher" method="post" action="../path.php"> <table align

嗨,我正在创建一个表单,在其中输入用户详细信息,并通过电子邮件向他们提供用户名和密码,以便登录

问题:使用post方法,我想向用户发送电子邮件。 但它显示已发送但尚未收到的电子邮件

如果直接给收件人地址,则发送电子邮件。 美元至:email@domain.com-邮件已发送

使用“发送邮件”在本地主机中发送电子邮件

我的表格是

<form name="assignteacher" method="post" action="../path.php">

<table align="center" width="450px">

<tr>

<td valign="top">

<label for="teacherid">Teacher ID</label>

</td>

<td valign="top">

<input  type="text" name="teacherid" maxlength="50" size="30">

</td>

</tr>
<tr>

<td valign="top">

<label for="email">Email</label>

</td>

<td valign="top">

<input  type="email" name="email" maxlength="50" size="30">

</td>

</tr>
<tr>

<td valign="top">

<label for="username">User Name</label>

</td>

<td valign="top">

<input  type="text" name="username" maxlength="50" size="30">

</td>

</tr>

<tr>

<td valign="top"">

<label for="password">Password</label>

</td>

<td valign="top">

<input  type="text" name="password" maxlength="50" size="30">

</td>

</tr>

<tr>

<td valign="top">

<label for="class">Class Assigned</label>

</td>

<td valign="top">

<input  type="text" name="class" maxlength="80" size="30">

</td>

</tr>



<tr>

<td colspan="2" style="text-align:center">

<input type="submit" value="Submit">   
<a href="http://www.freecontactform.com/email_form.php">Email Form</a>

</td>

</tr>

</table>

</form>

教师证
电子邮件
用户名

无需为
$to='$emailid'提供单引号因为它是包含字符串值的PHP变量。如下所示:

$to=$emailid;
第二行
$to='$emailid'
应该是
$to=$emailid


值得指出的是,这是一个巨大的安全风险-此代码不应在公共互联网上提供,除非它有密码保护。

如果您使用HTML 5属性进行输入,它将仅在现代浏览器上工作。。 下面的变化也是如此

在HTML中

<input  type="text" name="email" maxlength="50" size="30">

如果您使用的是Xampp,则必须修改2个ini文件:php.ini和sendmail.ini 1) 在php.ini中查找邮件函数(c:/xampp/php/php.ini)>>[邮件函数] 更改以下内容:

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = from@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
2) 下一步修改sendmail.ini(c:/xampp/sendmail/sendmail.ini) 编辑以下行(如果没有,请复制并粘贴,然后编辑)

保存这两个文件,然后用以下代码测试它

<?php
$subject="Test mail";
$to="someone@whatever.com";
$body="This is a test mail";
if (mail($to,$subject,$body)) {
echo "Mail sent successfully!";
} else {
echo"Mail not sent!";
}
?>


如果
mail
函数返回true,那么就PHP所知,邮件已发送。如果你没有收到它(也检查垃圾邮件文件夹…),那么它要么没有离开你的机器,要么被谷歌服务器拒绝。确保您的服务器设置了正确的反向dns和典型的反垃圾邮件配置$to=$emaild-邮件发送失败$to='$emailid'如何;是否存在任何风险?
$to='$emailid'不是一个安全风险-它根本不起作用。拥有一个公共电子邮件表单,任何人都可以将任何内容发送到世界上的任何电子邮件地址,这将很快看到您的web服务器变成垃圾邮件机器人。我不会改变HTML。电子邮件字段应使用
type=“email”
。使用现代浏览器的人将得到一些内置的错误检查,智能手机/平板电脑用户将得到一个合适的键盘,从1997年开始访问你网站的任何人都将得到一个常规的文本输入——它将优雅地降级。
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = from@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
account Gmail
tls on
tls_certcheck off
host smtp.gmail.com
from x@gmail.com
auth on
user x@gmail.com
password x

port 587

account default : Gmail
<?php
$subject="Test mail";
$to="someone@whatever.com";
$body="This is a test mail";
if (mail($to,$subject,$body)) {
echo "Mail sent successfully!";
} else {
echo"Mail not sent!";
}
?>