我试图从本地主机发送邮件。 但是我无法从本地主机发送邮件 所以有人能告诉我如何重新配置我的xampp从本地主机发送邮件


当前回答

我花了一个多小时才搞定。对于每个人都有同样的问题,所有的建议张贴不工作:你必须重新启动Apache在你的XAMPP inrerface!只是重新启动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";    
    }
?>

除了所有的答案,请注意sendmail.ini文件中:

auth_password = this-is-Not-your-Gmail-password

由于新的谷歌安全问题,您应该按照以下步骤为此目的设置应用程序密码:

在安全选项卡中转到https://accounts.google.com/ 使用任何可用选项打开两步验证 回到安全选项卡(在同一部分下,两步验证最初被发现),并创建App-password(在选择app下拉菜单中,您可以选择“其他”)

最后,请注意,如果您只是使用一个应用程序,而不是自己编写php代码,则可能需要将Sendmail设置为首选选项。

作为管理员运行XAMPP还应该解决任何文件访问问题。

您必须为此定义一个SMTP服务器和端口。除了从实时主机发送邮件。

这是一个有用的链接。

注意:该端口应未使用。请小心点,Some 像Skype这样的应用程序使用默认端口和阻止 发送邮件。

在XAMPP v3.2.1中,出于测试目的,您可以在XAMPP/mailoutput中看到XAMPP发送的电子邮件。就我在Windows 8上的情况而言,这不需要任何额外的配置,是测试电子邮件的简单解决方案

根据我的个人经验,我发现与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可能会有所帮助。