我有一个简单的脚本可以在我的任何其他服务器上正常工作,但在我需要的那个服务器上,它没有。
<?php
$mail = mail('test@test.cz', 'My Subject', 'msg');
?>
我尝试调用webhost提供程序,但无法访问它们。也尝试谷歌一些建议,但没有人似乎有同样的问题。
脚本没有显示任何错误消息,它只是没有做任何事情。
您知道问题是什么,还是以其他方式发送电子邮件?
由于
答案 0 :(得分:6)
似乎没有在您的服务器上配置sendmail。
你可以做的是在f.e.创建一个邮件帐户。 gmail,yahoo mail或类似邮件,并使用Zend_Mail使用SMTP从此帐户发送邮件。
我从Zend Framework文档中获取了这个代码示例:
$config = array('auth' => 'login',
'username' => 'myusername',
'password' => 'password');
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setFrom('sender@test.com', 'Some Sender');
$mail->addTo('recipient@test.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send($transport);
这不需要配置sendmail,因为您使用的是允许smtp的预先存在的邮件服务器。
<强>更新强> 正如toto指出的那样,你的托管服务商也可能阻止SMTP。在这种情况下,你可以尝试使用SSL,只需在Zend_Mail配置中添加两个条目,然后它们应如下所示:
$config = array('auth' => 'login',
'username' => 'myusername',
'password' => 'password',
'ssl' => 'ssl',
'port' => 465);
希望这有帮助。
答案 1 :(得分:2)
脚本不一定会显示错误,失败时$ mail会出错。
一些可能性
您的主机可能已阻止这些端口。
如果是Windows主机,您可能没有在php.ini中设置邮件设置
看看php mail manual page。在示例中,它显示您可以添加额外的标头。主机连接的邮件服务器可能需要某些基本标头
答案 2 :(得分:0)
只有这家托管公司才能回答。我们只能做出假设。
但简单地说:如果此代码与其他托管公司合作而不是这个。它肯定是一个配置问题(php.ini,smtp网关/服务器,本地防火墙等)。
廉价的托管公司通常都有非常好的支持服务。 ;)所以继续努力达到他们或他们(想象一下你有一个大问题的那天)....
答案 3 :(得分:0)
如果可能,请检查您的服务器是否正在将 seznam.cz 解析为正确的IP地址。我有一个类似的问题,一旦我的服务器的DNS认为它托管某个域,所以所有到该域的电子邮件永远不会离开盒子!我们花了一段时间才想出那个。
你可能没有这个问题,但检查不会有什么坏处。