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

T.T*_*dua 28 smtp

如何从localhost SMTP发送邮件(使用Wamp,Xampp等)?PHP mail()本身似乎不起作用.

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

T.T*_*dua 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.
Run Code Online (Sandbox Code Playgroud)

如果您需要使用另一台计算机的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.
Run Code Online (Sandbox Code Playgroud)

(但是,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"
Run Code Online (Sandbox Code Playgroud)

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

  • for local:设置>高级> IP范围>"我的电脑"
  • for external:设置>高级> IP范围>"Internet"

方法2 - 使用SendMail

您可以使用SendMail安装.


方法3 - 使用不同的方法

使用任何这些方法.

  • 很棒的答案和工作.只是为了补充一点,我需要在高级 - > ip范围 - >我的电脑下,取消"要求SMTP认证"下的所有内容,因为php mail()没有可用的. (2认同)

Sir*_*han 5

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

  • 通过此链接下载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 =
    • 主机名=本地主机

    • 访问您的电子邮件帐户 单击齿轮工具>设置>转发和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"
Run Code Online (Sandbox Code Playgroud)
  • 重启Wamp Server

我希望这对你有用..


Ure*_*tel 3

如果本地 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();
Run Code Online (Sandbox Code Playgroud)