Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 - Fatal编程技术网

PHP邮件函数

PHP邮件函数,php,Php,是否可以在没有任何外部包或工具的情况下用PHP发送邮件?如果有,有没有 是否需要配置php.ini文件 其内容如下: $to = $row->EMail_ID; $subject = "Reset your password"; $body = "Hi ".$row->Username.", \n\t\t\tA request to reset your password was received from you. \n\n\n"; $headers = "From: admin

是否可以在没有任何外部包或工具的情况下用PHP发送邮件?如果有,有没有

是否需要配置php.ini文件

其内容如下:

$to = $row->EMail_ID;
$subject = "Reset your password";
$body = "Hi ".$row->Username.", \n\t\t\tA request to reset your  password was received from you. \n\n\n";
$headers = "From: admin@admin.com\r\n"."X-Mailer: php/";
mail($to, $subject, $body, $headers); 
我得到的错误是:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, 
verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in F:\wamp\www\pwd.php on line 20

是的,这是可能的邮件功能,这是一个内部功能

不,您不必配置php.ini

<?php
// The message
$message = "Line 1\nLine 2\nLine 3";

// Send
mail('caffinated@example.com', 'My Subject', $message);
?>

如果您想在本地服务器上检查此问题,您必须安装邮件服务器。

听起来您没有安装sendmail或其替代产品,如postfix或courier。

或者您没有在本地运行邮件服务器,或者它正在非标准设置下运行

您可以查看phpinfo的输出以获取有关邮件系统的信息。具体而言:

sendmail_path  /usr/sbin/sendmail -t -i
SMTP           localhost
smtp_port      25

如果您使用的是共享主机,那么您的主机提供商可能有关于如何发送邮件的文档,这可能需要您使用PEAR/第三方库。

是的,当然,正如他在我上面所说的,但我将进一步介绍他的示例

$mailto = "receiver@mail.com"
$mailfrom = "sender@mail.com"
$subject = "The subject of the mail"
$content = "The content of the mail"

$headers = "From: $mailfrom\r\n" .
    "Reply-To: $mailfrom\r\n" .
    "Content-type: text/html; charset=iso-8859-1\r\n" .
    'X-Mailer: PHP/' . phpversion();

$mailsuccess = mail($mailto,$subject,$content,$headers);

if($mailsuccess)
{
    echo 'Mail Sent!';
}
else
{
    echo 'Failed to send Mail!';
}

请注意,标题中的内容类型条目。如果不使用该选项,则默认为纯文本邮件,将该行置于其中会将内容类型设置为text/html,从而允许您在邮件内容中使用html。您还可以将from和reply-to行设置为您想要的任何内容,并且还有其他用于标题的选项,例如重要标志等等。此外,如果您想按姓名和地址发送,您可以使用Fname Lname在标题中。

什么类型的错误?也许您可以提供错误消息和您正在使用的代码?这两种方法都有助于帮助您。这是否意味着我无法在localhost上运行脚本?您可以肯定地将电子邮件从本地邮件主机发送到另一个在线邮件主机。我需要在没有PEAR或其他localhost web服务器(如postcast…)的情况下从php mail发送此类密码重置邮件。。。。我需要从localhost发送邮件我认为您应该从网站的域而不是从localhost发送密码重置电子邮件。您的意思是说您正在编写一个本地网站,或者您将在网站完成后托管它?如果您想稍后托管它,请安装一个本地邮件服务器来检查您的应用程序,如MercuryMail或Sendmail。它们都有Windows和Linux版本。安装本地邮件服务器后,请在邮件服务器中配置域并添加至少2个电子邮件地址。第一个是你的网站电子邮件地址,就像没有-reply@mysite.local第二个是用户电子邮件地址。然后用这两个电子邮件地址检查你的密码重置代码。哦,你没有正确设置sendmail。而且你在WAMP服务器上,这意味着我认为你没有sendmail。您可能需要将其配置为使用自己的SMTP服务器。看看这个