Sha*_*ark 14 php email localhost wampserver
我mail()在localhost服务器上有php 功能的问题.当我尝试发送带有php功能的电子邮件时,我无法在localhost上测试我的电子邮件应用程序
mail().
我收到了这个错误
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\product\ajax.php on line 64
我正在使用WAMP服务器,如果有人知道解决方案,请帮助我.
Tre*_*non 14
您需要在计算机上设置邮件服务器才能使邮件功能正常工作.如果你在Windows上(我猜你是来自你使用WAMP)你可以设置一个Pegasus邮件服务器.
其他选项包括使用包装类(如SwiftMailer或PHPMailer)并使用它们连接到另一个SMTP服务器,例如您的GMail帐户.即使您在自己的localhost路由上使用Pegasus邮件服务器,我仍然建议使用上面提到的两个类中的一个.它们为您提供更大的灵活性,更安全.
连接到您的ISP SMTP服务器或GMail或任何最简单的路由.
小智 8
在这个php邮件功能问题上花了2天之后,我已经想出来并帮助你做同样的事情.浪费了足够的时间,让我们开始......
PHP有一个内置的php邮件功能,可用于从脚本发送邮件,但此功能在某种程度上受到限制,因为它无法将您连接到简单的邮件传输协议(SMTP)服务器.我假设你正在使用WAML/XAMPP,还没有真正尝试过XAMPP,但你可以想到这样:
首先,我们必须找到一种方法将我们的Web服务器(wamp)连接到外部SMTP.在这种情况下我们会使用Gmail,但在此之前,我们需要下载/安装一个工具,该工具可以从php脚本中获取我们的电子邮件并将其推送到Gmail SMTP.
sendmail.zip进行下载.C:\wamp\压缩为文件夹,这意味着它的内容应该位于名为sendmail的文件夹中,并且可以位于C:\wamp\sendmail.sendmail.ini并以管理员身份打开,因为我们即将修改其内容.更改以下行
[sendmail]
smtp_server=smtp.gmail.com
smtp_port= 465
smtp_ssl=ssl
default_domain=localhost
error_logfile=error.log
debug_logfile=debug.log
auth_username= enter your gmail account here
auth_password= enter the password for that account here
;pop3_server=
;pop3_username=
;pop3_password=
;force_sender=
;force_recipient=
hostname= localhost
Run Code Online (Sandbox Code Playgroud)
请注意,如上所述.我已从文件中删除了大部分不需要的内容,sendmail.ini以使事情更容易阅读.
保存文件
导航到您的wamp文件夹,然后以bin\apache\apache[version here]\bin\php.ini管理员身份移动并修改php文件,如下所示:
如果您使用记事本,则可以使用编辑选项卡下的查找或ctrl+ F并键入"邮件功能"以快速导航到php.ini文件的邮件功能部分.
[mail function]
;For Win32 only.
;http://php.net/smtp
;SMTP = localhost
;http://php.net/smtp-port
;smtp_port = 25
;For Win32 only.
;http://php.net/sendmail-from
;sendmail_from =
;For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;http://php.net/sendmail-path
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t -i" ----> this is the changed part.
Run Code Online (Sandbox Code Playgroud)
注意:只有sendmail_path您必须更改为上述内容.在您看到它们时保留其他设置.根据您将sendmail文件夹解压缩到的位置,您的路径可能会有所不同.
保存该php.ini文件
如上所述,回到C:\wamp\bin并选择php\php[version here]\php.ini并编辑sendmail路径并以管理员身份保存文件,或者在打开之前保存文件,通过右键单击以管理员身份打开
以管理员身份运行wampserver,当它变为绿色时,请打开以下内容:
左键单击绿色图标并移至php - > php extensions - > php_sockets(单击以对其进行黑色检查)
等待图标再次变为绿色,然后按照上面的步骤打开php_openssl.
如果图标变为绿色,则当您单击绿色wampserver图标时,可以通过移动到apache icom来打开apaches ssl_module.您可以在Apache模块中找到它.
当你完成退出上面的三个步骤并再次运行wampserver作为管理员来实现更改.
回到sendmail提取的文件夹并右键单击sendmail.exe
转到其属性 - >兼容性 - >更改所有用户的设置 - >兼容模式[更改为windows xp(service pack 3)] - >以管理员身份运行此程序[检查这个选项].
保存并申请.
我们必须这样做,这样每次我们调用sendmail应用程序时,它都会以管理员身份运行.
现在我们需要配置我们的Gmail帐户以使用此sendmail应用程序.登录gmail帐户,在右上角单击齿轮以选择设置.在设置中,转到转发和POP/IMAP选项卡并启用IMAP.保存更改
最后回到您的收件箱,电子邮件地址旁边的最右上角是一个向下的小箭头,单击它以选择我的帐户.如果您没有,可以尝试点击您的个人资料照片,从那里选择我的帐户.
单击"登录和安全"选项卡,然后向下滚动到页面底部.你会发现允许不太安全的应用程序:并打开它.大多数情况下,这将是关闭.
这就是您需要做的所有事情,您现在可以从localhost上的php脚本发送电子邮件.您现在可以mail()使用4个最小参数尝试您的功能,并查看.希望这可以帮助.投票,如果它有帮助,所以我可以花时间发布更有趣的解决方案.
| 归档时间: |
|
| 查看次数: |
61069 次 |
| 最近记录: |