使用 WAMP 设置从本地主机发送电子邮件 SMTP

发布于 2024-10-14 18:11:14 字数 348 浏览 8 评论 0原文

我正在尝试配置我的 php.ini 文件,以便我可以使用 PHP 从我的开发环境中的“localhost”发送电子邮件。我无法再访问开放的 SMTP 服务器,并且 Gmail 也无法再使用其新的 SSL 设置。我已经做了很多研究,并在这里和其他地方看到了很多“解决方案”,但它们不起作用。我尝试安装本地 SMTP 服务器(hMailServer 要求输入密码才能安装,免费 SMTP 服务器不起作用,等等)。

有谁知道我可以在 php.ini 文件中设置免费的 SMTP 服务器,或者以任何其他方式从本地主机发送邮件(我只需要它用于测试目的)。当我切换到生产环境时,我不想更改代码并以完全不同的方式发送电子邮件。 (我正在使用 Zend 和 Zend_Mail 类)

I'm trying to configure my php.ini file so I can send emails from 'localhost' in my dev environment using PHP. I no longer have access to an open SMTP server, and Gmail no longer works with their new SSL setup. I've done a lot of research and seen lots of "solutions" here and elsewhere, but they don't work. I've tried installing local SMTP servers (hMailServer asks for a password to install, Free SMTP Server doesn't work, etc).

Does anyone know of a free SMTP server I can setup in my php.ini file, or any other way to send mail from localhost (I just need it for testing purposes). I don't want to have to change code and send emails in a completely different way when I switch to production. (I'm using Zend and the Zend_Mail class)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

凹づ凸ル 2024-10-21 18:11:15

XAMP、WAMP 等解决方案。

下载hMailServer;然后配置程序:

  1. 当您第一次打开hMailServer Administrator时,您应该添加新的域。
  2. 单击欢迎页面上的“添加域...”按钮。
  3. 在域文本字段下,输入您计算机的 IP,在本例中应为 127.0.0.1。
  4. 单击“保存”按钮。
  5. 转到“设置”>“协议”>“SMTP”,然后选择“电子邮件传送”选项卡,
  6. 在“本地主机名称”字段中输入“本地主机”。
  7. 单击“保存”按钮。

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

  1. 转至“设置”>“高级”>“IP 范围”,然后双击“我的电脑”,其 IP 地址应为 127.0.0.1
  2. 选中“允许从外部帐户向外部帐户传送”复选框。
  3. 使用“保存”按钮保存设置。

如果您使用 Gmail 帐户,则需要进行小修改:

  1. 转到“设置”>“协议”>“SMTP”,然后选择“电子邮件发送”选项卡,
  2. 在“远程主机名”字段中输入“smtp.gmail.com”。
  3. 输入“465”作为端口号
  4. 选中“服务器需要身份验证”
  5. 在用户名字段中输入您的 Google Mail 地址
  6. 在密码字段中输入您的 Google Mail 密码。
  7. 勾选“使用 SSL”

Solution for XAMP, WAMP or etc..

download hMailServer; Then configure program:

  1. When you first open hMailServer Administrator, you should add 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.

If you need to send mail using a FROM addressee of another computer, you need to allow deliveries from External to External accounts. To do that, follow these steps:

  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.

If you use Gmail account, then need small modification :

  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 your Google Mail address in the Username field
  6. Enter your Google Mail password in the password field.
  7. Check "Use SSL"
甜味超标? 2024-10-21 18:11:15

您必须使用此配置来传输邮件

$transport = new Mail\Transport\Smtp();  
        $options = new Mail\Transport\SmtpOptions (array(  
                    'name' => 'host',  
                    'host' => 'smtp.gmail.com',  
                    'port'=> 587,  
                    'connection_class' => 'login',  
                    'connection_config' => array(  
                        'username' => "yourGmailUserMail",  
                        'password' => 'yourGmailPassword',  
                        'ssl'=> 'tls',  
                    ),  
        )); 
        $transport->setOptions($options)

它会起作用的。

You will have to use this confuguration for the transport of the mail

$transport = new Mail\Transport\Smtp();  
        $options = new Mail\Transport\SmtpOptions (array(  
                    'name' => 'host',  
                    'host' => 'smtp.gmail.com',  
                    'port'=> 587,  
                    'connection_class' => 'login',  
                    'connection_config' => array(  
                        'username' => "yourGmailUserMail",  
                        'password' => 'yourGmailPassword',  
                        'ssl'=> 'tls',  
                    ),  
        )); 
        $transport->setOptions($options)

;

and it will works.

思念满溢 2024-10-21 18:11:14

您可以尝试使用 Zend_Mail_Transport_File 进行测试。

$mail = new Zend_Mail();
$mail->send(new Zend_Mail_Transport_File());

You could try using Zend_Mail_Transport_File for testing instead.

$mail = new Zend_Mail();
$mail->send(new Zend_Mail_Transport_File());
趁年轻赶紧闹 2024-10-21 18:11:14

在 Windows 中,我通常使用 Mercury 从本地主机发送电子邮件以进行测试。 Mercury 对于非商业用途是免费的,并且也在 xampp 中使用。

In windows I was usually using Mercury to sent emails from localhost for testing purposes. Mercury is free for non-commercial use and it is also used in xampp.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文