如何在Mac OS X上设置SMTP服务器?

11

我使用PHP,并在我的机器上安装了MAMP。我想在我的PHP代码中发送电子邮件:

<?php
 $to = "recipient@example.com";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";
 if (mail($to, $subject, $body)) {
   echo("<p>Message successfully sent!</p>");
  } else {
   echo("<p>Message delivery failed...</p>");
  }
 ?>

我如何在我的 Mac 机器上免费配置邮件服务器?

4个回答

15
以下操作可以完成任务。请在此处查看源代码
  1. 编辑文件:sudo emacs /System/Library/LaunchDaemons/org.postfix.master.plist
  2. 在结束的</dict>标记之前添加<key>RunAtLoad</key><true/><key>KeepAlive</key><true/>
  3. 运行sudo postfix start

检查SMPT是否正在运行:telnet localhost 25


尽管我已经很久没有联系,但请更新源代码。它似乎无法正常工作。 - Ameed Aabidi
Syed,我没有写那篇缺失的文章。请随意寻找替代来源。 - AlikElzin-kilaka
4
虽然我有/System/Library/LaunchDaemons/com.apple.postfix.master.plist这个文件,但没有那个文件。该文件没有编辑权限,所以我尝试启动服务,它似乎可以自己正常工作。 - micseydel

14

选项1:

CommandLineFu提供了一个单行命令,可以在25号端口上运行SMTP服务器:

sudo python -m smtpd -n -c DebuggingServer localhost:25

这将在您的本地计算机上运行一个虚拟的SMTP服务器。它不会发送任何内容,但会将其转储到控制台。

选项2:

如果您不熟悉命令行,则可以使用FakeSMTP进行电子邮件测试,它是一个带有GUI的免费虚假SMTP服务器,易于在应用程序中测试电子邮件。它是用Java编写的,非常好用。

[http://nilhcem.com/FakeSMTP/][1]


这太棒了。 - Vladtn

0

有没有可以在Linux Mac上安装的SMTP服务器?

使用SMTP身份验证从PHP发送邮件-示例:

<?php
 require_once "Mail.php";

 $from = "Sandra Sender <sender@example.com>";
 $to = "Ramona Recipient <recipient@example.com>";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";

 $host = "mail.example.com";
 $username = "smtp_username";
 $password = "smtp_password";

 $headers = array ('From' => $from,
   'To' => $to,
   'Subject' => $subject);
 $smtp = Mail::factory('smtp',
   array ('host' => $host,
     'auth' => true,
     'username' => $username,
     'password' => $password));

 $mail = $smtp->send($to, $headers, $body);

 if (PEAR::isError($mail)) {
   echo("<p>" . $mail->getMessage() . "</p>");
  } else {
   echo("<p>Message successfully sent!</p>");
  }
 ?>

使用SMTP身份验证和SSL加密从PHP发送邮件-示例:

<?php
 require_once "Mail.php";

 $from = "Sandra Sender <sender@example.com>";
 $to = "Ramona Recipient <recipient@example.com>";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";

 $host = "ssl://mail.example.com";
 $port = "465";
 $username = "smtp_username";
 $password = "smtp_password";

 $headers = array ('From' => $from,
   'To' => $to,
   'Subject' => $subject);
 $smtp = Mail::factory('smtp',
   array ('host' => $host,
     'port' => $port,
     'auth' => true,
     'username' => $username,
     'password' => $password));

 $mail = $smtp->send($to, $headers, $body);

 if (PEAR::isError($mail)) {
   echo("<p>" . $mail->getMessage() . "</p>");
  } else {
   echo("<p>Message successfully sent!</p>");
  }
 ?>

相关主题:


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接