我试图从本地主机发送邮件。 但是我无法从本地主机发送邮件 所以有人能告诉我如何重新配置我的xampp从本地主机发送邮件
当前回答
你可以用sendmail包从本地主机发送邮件,sendmail包是XAMPP内置的。 所以如果你使用XAMPP,那么你可以很容易地从本地主机发送邮件。
例如,您可以配置C:\xampp\php\php.ini和C:\xampp\ sendmail\sendmail.ini用于gmail发送邮件。
在C:\xampp\php\php.ini中找到extension=php_openssl.dll,并从该行开始删除分号,以使SSL适用于gmail的localhost。
在php.ini文件中找到[邮件函数]并更改
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
打开C:\xampp\sendmail\sendmail.ini。将sendmail.ini中的所有现有代码替换为以下代码
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com
现在你做到了!!创建带有邮件功能的PHP文件,并从本地主机发送邮件。
PS:不要忘记在上面的代码中替换my-gmail-id和my-gmail-password。 此外,如果你从上面复制了设置,不要忘记删除重复的键。例如,如果php.ini文件中有另一个sendmail_path: sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe
还记得使用XAMMP控制面板重新启动服务器,以便更改生效。
对于gmail,请检查https://support.google.com/accounts/answer/6010255以允许从不太安全的应用程序访问。
在Linux上发送电子邮件(使用sendmail包)通过Gmail从 使用gmail表单发送邮件 本地主机。
其他回答
您可以测试发送邮件在您的PC没有互联网
你应该使用剪纸这个简单的应用程序来测试发送邮件。你不需要配置任何东西。
只需运行它,并尝试测试发送邮件:
test_sendmail.php
<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>
你会看到这个:
我希望你今天过得愉快。 你可以在Youtube上找到我的更多教程
欢呼!
根据我的个人经验,我发现与Vikas Dwivedi非常相似的答案会很好地工作。
步骤1 (php.ini文件)
在php.ini文件xampp\php\php.ini。更改设置如下:
extension=php_openssl.dll
[mail function]
sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
mail.add_x_header=On
通过put关闭邮件函数下的其他变量;在他们面前。例如;smtp_port = 25
步骤2 (sendmail.ini文件)
在sendmail.ini位于xampp\sendmail\semdmail.ini更改为 后:
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
auth_username=address@gmail.com
auth_password=YourPassword
步骤3(代码)
创建一个php文件,并使用以下命令:
<?php
mail($to, "subject", "body", "From: ".$from);
?>
请注意
为了重新加载php.ini,您需要重新启动apache。 你需要在https://myaccount.google.com/u/1/security激活谷歌不太安全的应用程序访问 使用管理员权限运行Xampp可能会有所帮助。
此代码用于从本地主机XAMPP和您的Gmail帐户发送邮件。 这个代码是非常简单的,为我工作试试你自己。
下面是修改php.ini文件
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
extension=php_openssl.dll
下面是sendmail.ini文件中的Change
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=yourmail@gmail.com
auth_password=your-gmail-password
force_sender=yourmail@gmail.com
请在你的PHP文件中写爱的代码来发送电子邮件
<?php
$to = "tomail@gmail.com";
$subject = "Test Mail";
$headers = "From: from_mail@gmail.com\r\n";
$headers .= "Reply-To: replytomail@gmail.com\r\n";
$headers .= "CC: theassassin.edu@gmail.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message .= '<img src="//css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Name:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Email:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Type of Change:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Urgency:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>URL To Change (main):</strong> </td><td>Details</td></tr>";
$addURLS = 'google.com';
if (($addURLS) != '') {
$message .= "<tr><td><strong>URL To Change (additional):</strong> </td><td>" . $addURLS . "</td></tr>";
}
$curText = 'dummy text';
if (($curText) != '') {
$message .= "<tr><td><strong>CURRENT Content:</strong> </td><td>" . $curText . "</td></tr>";
}
$message .= "<tr><td><strong>NEW Content:</strong> </td><td>New Text</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
if(mail($to,$subject,$message,$headers))
{
echo "Mail Send Sucuceed";
}
else{
echo "Mail Send Failed";
}
?>
我花了一个多小时才搞定。对于每个人都有同样的问题,所有的建议张贴不工作:你必须重新启动Apache在你的XAMPP inrerface!只是重新启动XAMPP行不通!!
除了所有的答案,请注意sendmail.ini文件中:
auth_password = this-is-Not-your-Gmail-password
由于新的谷歌安全问题,您应该按照以下步骤为此目的设置应用程序密码:
在安全选项卡中转到https://accounts.google.com/ 使用任何可用选项打开两步验证 回到安全选项卡(在同一部分下,两步验证最初被发现),并创建App-password(在选择app下拉菜单中,您可以选择“其他”)
最后,请注意,如果您只是使用一个应用程序,而不是自己编写php代码,则可能需要将Sendmail设置为首选选项。
作为管理员运行XAMPP还应该解决任何文件访问问题。
推荐文章
- 格式化字节到千字节,兆字节,千兆字节
- 如何在PHP中获得变量名作为字符串?
- 用“+”(数组联合运算符)合并两个数组如何工作?
- Laravel PHP命令未找到
- 如何修复从源代码安装PHP时未发现xml2-config的错误?
- 在PHP中对动态变量名使用大括号
- 如何从对象数组中通过对象属性找到条目?
- 如何从关联数组中删除键及其值?
- PHP字符串中的花括号
- PHP -如何最好地确定当前调用是否来自CLI或web服务器?
- 无法打开流:没有这样的文件或目录
- 在php中生成一个随机密码
- 如何通过PHP检查URL是否存在?
- 如何防止页面刷新时重新提交表单(F5 / CTRL+R)
- 如何为已安装的Ubuntu LAMP堆栈启用cURL ?