以下脚本使用邮件功能发送电子邮件.但是我无法发送电子邮件.点击提交后会显示:
Warning: mail() [function.mail]: SMTP server response: 553 We do not relay non-local mail, sorry. in E:\xampp\htdocs\feedback.php on line 19
mail sent successfully
脚本
if( isset( $_REQUEST['email'] ) ) {
$email = $_REQUEST['email'];
$subject = $_REQUEST['subject'];
$message = $_REQUEST['message'];
mail("me@gmail.com" , $subject , $message , "From:".$email );
echo "mail sent successfully";
} else {
echo "
Email of sender :
Subject :
Enter your feedback here :
";}
?>
我使用Apache作为PHP服务器
还要说明为什么我们必须写一个$subject,$message,即邮件参数中的$sign,因为我们已经在上面声明了$email,$message等.为什么我们不能只写消息,电子邮件,没有美元符号?
解决方法:
>您正在使用默认情况下附带Mercury的XAMPP,默认情况下,Mercury未配置为将邮件发送到其他服务器.它基本上用于调试. Instructions do exist配置它这样做,但Windows Apache通常最好只作为我的经验调试环境.
> PHP变量都有前面的$.它被称为sigil.它是将它们与常量,类定义和函数区分开来的.如果要分配值然后将其发送到函数,则需要使用变量.如果它足够重要,你可以使用define来设置一个常数,但相信我,这些情况很少见,你通常应该避免使用它们.
不过你也可以这样做:
mail("me@gmail.com" ,
$_REQUEST['subject'] ,
$_REQUEST['message'] ,
"From:".$_REQUEST['email'] );
标签:php,email
来源: https://codeday.me/bug/20190713/1444749.html