我正在使用发送电子邮件的脚本,我收到以下错误:
警告:mail()[function.mail]:无法连接到“localhost”端口25的邮件服务器,验证php.ini中的“SMTP”和“smtp_port”设置或使用C中的ini_set() :第125行:\ wamp \ bin \ php \ php5.3.0 \ PEAR \ Mail \ mail.php
如何找出本地主机的stmp_port?
编辑:
对不起我的计算机上没有自己的服务器,我认为我也不想设置它。我没有意识到它需要什么。我确实有一个托管服务提供商,并想知道如何使用他们的smtp信息发送我的邮件,如果有人知道如何做到这一点。
根据Nathan Adams的回复,我可以使用我的托管服务提供商的smtp信息。我究竟需要找出哪些信息放在我的php.ini文件中?
答案 0 :(得分:2)
不仅需要了解哪个端口。你必须知道你的smtp邮件服务器的地址是什么。
作为SMTP的其他电子邮件配置。你至少需要4条信息:
代码必须如下所示。
$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,
'port' => 25
'auth' => true,
'username' => $username,
'password' => $password));
您可以通过 gmail 帐户轻松发送电子邮件 - see here
答案 1 :(得分:1)
您必须运行SMTP服务器,否则您需要将php.ini中的SMTP和smtp_port设置为其他人(您的ISP,您的托管服务提供商等)。
答案 2 :(得分:0)
您是否安装了smtp服务器?它在运行吗?不确定你所使用的平台,但是在Windows上你可以从命令行运行“netstat -a”并查找状态“LISTENING”
答案 3 :(得分:0)
如果您没有在端口25上侦听SMTP服务器,那么您可能没有运行SMTP服务器。只有在非常自定义的情况下,才能将SMTP服务器配置为侦听其他端口。
原始问题的答案是“它取决于”。这取决于您用于SMTP的软件(在服务器端)。我不确定是否有一个简单的解决方案,看看“某些”端口上是否有“某些”SMTP服务器运行。
答案 4 :(得分:0)
如果您在本地主机上运行SMTP服务器,则必须已安装并配置(确实选择了一个端口!= 25 ...),所以只需阅读配置文件以找出位置你安装它运行!更有可能的是,如果你从来没有听说过,你可能不运行任何SMTP服务器然后你的选择要么这样做(提示:如果你这样做,请使用端口25,使你喜欢更容易! - )或找出一些其他的SMTP服务器,他们愿意容纳你并将你的PHP配置设置为指向那个。
编辑:既然您已在评论中提到您在托管服务提供商处,那么当然您应该询问您的提供商什么主机(可能是localhost,可能是其他东西)和端口(所有赌注都已关闭!)他们正在为您提供SMTP服务。
答案 5 :(得分:0)
非常很有可能您的PHP脚本作为匿名系统用户运行,即“nobody”或“www-data”。
许多主机限制匿名用户访问端口25(本地)以防止滥用邮件程序。相反,您可能需要连接到实际的域并在发送邮件之前进行身份验证。
即。使用“mydomain.com”“25”而不是“localhost”,使用您喜欢的任何SMTP类。 mail()可能会毫无用处。
请与您的主人仔细确认,但我怀疑是这种情况。