(WAMP / XAMPP)使用SMTP localhost发送邮件

时间:2013-05-30 07:49:09

标签: smtp

如何从localhost SMTP发送邮件(使用Wamp,Xampp等)? PHP mail()似乎无法原生工作。

任何人都可以发出指示吗?

6 个答案:

答案 0 :(得分:36)

方法1(首选) - 使用 hMailServer


安装完成后,您需要以下配置才能从wampserver正确发送邮件:

1) When you first open hMailServer Administrator, you need to add a new domain.
2) Click on the "Add Domain ..." button at the Welcome page. 
3) Under the domain text field, enter your computer's IP, in this case it should be 127.0.0.1.
4) Click on the Save button.
5) Go to Settings>Protocols>SMTP and select "Delivery of Email" tab
6) Enter "localhost" in the localhost name field.
7) Click on the Save button.

如果您需要使用另一台计算机的FROM收件人发送邮件,则需要允许从外部帐户向外部帐户发送邮件。为此,请按照下列步骤操作:

1) Go to Settings>Advanced>IP Ranges and double click on "My Computer" which should have IP address of 127.0.0.1
2) Check the Allow Deliveries from External to External accounts checkbox.
3) Save settings using Save button.

(但是,Windows Live / Hotmail拒绝来自动态IP的所有电子邮件,大多数住宅计算机都使用这些电子邮件。解决方法是使用Gmail帐户)

使用Gmail用户请注意:

1) Go to Settings>Protocols>SMTP and select "Delivery of Email" tab
2) Enter "smtp.gmail.com" in the Remote Host name field.
3) Enter "465" as the port number
4) Check "Server requires authentication"
5) Enter gmail address in the Username
6) Enter gmail password in the password 
7) Check "Use SSL"

(注意,来自字段不能与gmail一起使用)
* P.S。对于某些人来说,可能还需要取消require SMTP authentication下的所有内容:

  • for local:设置>高级> IP范围>“我的电脑”
  • for external:设置>高级> IP范围>“互联网”

方法2 - 使用SendMail

您可以使用SendMail installation


方法3 - 使用不同的方法

使用these methods中的任何一个。

答案 1 :(得分:5)

以下是实现此目标的步骤:

  • 通过此link

    下载sendmail.zip
    • 现在,解压缩文件夹并将其放到C:/ wamp /。确保存在以下四个文件:sendmail.exe,libeay32.dll,ssleay32.ddl和sendmail.ini。
    • 打开sendmail.ini并按如下方式设置配置:

    • smtp_server = smtp.gmail.com

    • SMTP_PORT = 465
    • smtp_ssl = SSL
    • DEFAULT_DOMAIN =本地主机
    • error_logfile = error.log中
    • debug_logfile =的debug.log
    • auth_username = [your_gmail_account_username] @ gmail.com
    • AUTH_PASSWORD = [your_gmail_account_password]
    • pop3_server =
    • pop3_username =
    • pop3_password =
    • force_sender =
    • force_recipient =
    • 主机名=本地主机

    • 访问您的电子邮件帐户。单击Gear Tool>设置>转发和POP / IMAP> IMAP访问。单击“启用IMAP”,然后保存更改。

    • 运行您的WAMP服务器。在Apache Module下启用ssl_module。

    • 接下来,在PHP下启用php_openssl和php_sockets。

    • 打开php.ini并将其配置为以下代码。基本上,您只需设置sendmail_path。

[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP =
; http://php.net/smtp-port
;smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = you@domain.com
; 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"
  • 重启Wamp Server

我希望这对你有用..

答案 2 :(得分:2)

如果您遇到本地xampp问题,可以使用此库发送电子邮件,wamp ...

  

class.phpmailer.php,class.smtp.php   将此代码写入您的电子邮件功能调用的文件

    include('class.phpmailer.php');

    $mail = new PHPMailer();  
    $mail->IsHTML(true);
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "ssl";
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465;
    $mail->Username = "your email ID";
    $mail->Password = "your email password";
    $fromname = "From Name in Email";

$To = trim($email,"\r\n");
      $tContent   = '';

      $tContent .="<table width='550px' colspan='2' cellpadding='4'>
            <tr><td align='center'><img src='imgpath' width='100' height='100'></td></tr>
            <tr><td height='20'>&nbsp;</td></tr>
            <tr>
              <td>
                <table cellspacing='1' cellpadding='1' width='100%' height='100%'>
                <tr><td align='center'><h2>YOUR TEXT<h2></td></tr/>
                <tr><td>&nbsp;</td></tr>
                <tr><td align='center'>Name: ".trim(NAME,"\r\n")."</td></tr>
                <tr><td align='center'>ABCD TEXT: ".$abcd."</td></tr>
                <tr><td>&nbsp;</td></tr>                
                </table>
              </td>
            </tr>
            </table>";
      $mail->From = "From email";
      $mail->FromName = $fromname;        
      $mail->Subject = "Your Details."; 
      $mail->Body = $tContent;
      $mail->AddAddress($To); 
      $mail->set('X-Priority', '1'); //Priority 1 = High, 3 = Normal, 5 = low
      $mail->Send();

答案 3 :(得分:2)

如果您在php.ini中指定了smtp服务器和smtp端口,可以直接从php mail()函数发送邮件,首先向您的ISP询问 SMTP服务器凭据

SMTP = smtp.wlink.com.np //put your ISP's smtp server

smtp_port = 25 // your ISP's smtp port.

然后只需重启apache服务器即可开始工作。喜欢......

答案 4 :(得分:0)

如果你们中的任何一个人在按照 Afwe Wef

给出的答案后收到如下错误的错误
 Warning: mail() [<a href='function.mail'>function.mail</a>]: SMTP server response:

 550 The address is not valid. in c:\wamp\www\email.php

转到 php.ini

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = valideaccount@gmail.com

输入valideaccount@gmail.com作为您用于在 sendmail_from 前配置hMailserver的电子邮件ID。

你的问题将得到解决。

在Windows 8上的Wamp server2.2(Apache 2.2.22,php 5.3.13)上测试

如果您也遇到以下错误

"APPLICATION"   6364    "2014-03-24 13:13:33.979"   "SMTPDeliverer - Message 2: Relaying to host smtp.gmail.com."
"APPLICATION"   6364    "2014-03-24 13:13:34.415"   "SMTPDeliverer - Message 2: Message could not be delivered. Scheduling it for later delivery in 60 minutes."
"APPLICATION"   6364    "2014-03-24 13:13:34.430"   "SMTPDeliverer - Message 2: Message delivery thread completed."

您可能忘记将端口从25更改为465

答案 5 :(得分:0)

我更喜欢使用PHPMailer脚本从localhost发送电子邮件,因为它允许我将我的Gmail帐户用作SMTP。您可以从http://phpmailer.worxware.com/找到PHPMailer。有关如何将Gmail用作SMTP或任何其他SMTP的帮助,请访问http://www.mittalpatel.co.in/php_send_mail_from_localhost_using_gmail_smtp。希望这有帮助!