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