【问题标题】:Sending emails using XAMPP and PHP using Mac Yosemite使用 Mac Yosemite 使用 XAMPP 和 PHP 发送电子邮件
【发布时间】:2015-06-01 22:57:38
【问题描述】:

我真的很困惑从哪里开始发送电子邮件。我已经在网上搜索过,但可用于不同软件包和软件的内容量确实让我感到困惑。我想知道这里是否有人有一个简单的或知道如何使用 xampp 发送电子邮件的简单教程。

我是使用本地主机的新手,到目前为止只使用 xampp 中的 MySQL 和 Apache 来加载和查看我的应用程序的 php 文件。

如果有人可以帮助我开始设置 XAMPP 以在我使用 php 时发送电子邮件,我将不胜感激。

一些网站建议像 PHPMailer 这样的电子邮件需要单独的服务器,而另一些网站则建议需要进行一些配置更改,例如更改 php.ini 文件,我非常谨慎地更改以防我的整个 xampp 崩溃!

这个链接有用吗? http://www.websnippetz.com/2013/01/send-email-from-xampp-localhost.html 许多人正在使用带有 XAMPP 的 SendMail 包,但我找不到它的下载。

有人尝试过任何对他们有用的方法吗?

请帮助一个非常困惑的开发人员!

【问题讨论】:

    标签: php macos apache email xampp


    【解决方案1】:

    要从您的本地主机发送电子邮件,您需要一个电子邮件服务器,如 postfix 或 Exim,或者您通过 SMTP 发送您的电子邮件,该站点上从您的链接中描述的内容。

    最简单的方法是使用像 Swift Mailer 这样的抽象层

    http://swiftmailer.org/docs/sending.html

    在这里您有很多发送电子邮件的可能性。另一种解决方案是安装本地邮件服务器并获取所有发送电子邮件。例如,在 MAMP Pro 中,您有一个集成的邮件服务器。

    http://blog-en.mamp.info/2009/09/how-to-sending-emails-with-mamp-pro.html

    【讨论】:

      【解决方案2】:

      一些网站建议像 PHPMailer 这样的电子邮件需要单独的服务器,而另一些网站则建议需要进行一些配置更改,例如更改 php.ini 文件,我非常谨慎地更改以防我的整个 xampp 崩溃!

      PHPMailer 不是服务器,它是一个库。人们经常推荐使用 Mail 库,因为内置的邮件功能非常低级且难以使用。因为它们是使用sendmail from the commandline建模的。

      如果您想通过 SMTP 发送、使用附件或其他方式,直接使用 mail() 可能会很困难或不可能。

      我个人建议在 PHP 邮件程序上使用 SwiftMail。 IMO,它更现代、更易于使用,并且具有更好的 API,并且取决于您习惯使用哪些 PHP F/OSS 项目或为其更常见和标准做出贡献。

      总的来说,从 PHP 发送邮件有 2 个部分:

      1. 在系统(本地或其他)上设置实际邮件服务器
      2. 使用该邮件服务器的 PHP 配置。

      要设置mail 功能,您需要在本地安装和配置邮件服务器以实现第 (1) 项。这应该已经包含并在 OSX 上设置。因此,要实现第 (2) 项,您需要通过 INI 配置 PHP 以通过更改 sendmail_path 来使用该邮件服务器。

      现在,如果您想使用一个库,我建议您需要将该源代码放入您的项目中,然后适当地使用它。例如,我们将使用 SwiftMailer,通过 gmail 帐户进行 SMTP 传输:

      require_once 'PATH/TO/swift_required.php';
      
      // Create the Transport
      $transport = Swift_SmtpTransport::newInstance('smtp.googlemail.com', 465, 'ssl')
        ->setUsername('user@gmail.com')
        ->setPassword('secret');
      
      $mailer = Swift_Mailer::newInstance($transport);
      
      $message = Swift_Message::newInstance('My SMTP Message')
        ->setFrom(array('john@doe.com' => 'John Doe'))
        ->setTo(array('receipient@domain.com', 'other@domain.com' => 'A name'))
        ->setBody('Plain Text Message Body');
      
      $mailer->send($message);
      

      【讨论】:

      • 我在某处读到 mac 已经默认设置了后缀服务器。我找到了这个链接。 developerfiles.com/… 这个好用吗?
      • 如果你真的想配置 Postfix 那应该没问题,但你不应该...
      • 我真的不想配置任何东西。我只想使用我在 xampp 中已有的内容并对其进行修改以使其正常工作。不知道如何做那部分。非常感谢您的帮助
      • 所以在sendmail_path 上查看您的php.ini,确保它指向/usr/sbin/sendmail(将/应该有几个命令行选项),然后使用mail() 函数或将 SwiftMailer 与 Mail 传输一起使用。
      • 目前它被设置为 ';sendmail_path =' 所以我只需要将它添加到路径的末尾?并删除分号?像上面显示的@Stony 一样说明电子邮件地址和密码怎么样?
      猜你喜欢
      • 2015-08-08
      • 2013-03-13
      • 2012-05-07
      • 2021-09-12
      • 2013-03-30
      • 1970-01-01
      • 2012-08-29
      相关资源
      最近更新 更多