我开始不喜欢1and1.com那么多。 我已经使用了他们多年,但主要是简单的网站,而不需要太多的configuration。 我知道有更好的托pipe公司,我可能会去找他们。
这里的问题是,我的本地XAMPP服务器(坐在一个networking与康卡斯特ISP),我有一个PHP脚本,使用PEAR ::邮件发送邮件使用MIME。 脚本可以通过smtp.1and1.com和相应的证书在本地查找, smtp.gmail.com通过相应的证书使用相应的端口等。
1and1告诉我必须更改此脚本运行的域上的MXlogging才能使其工作。 这对我来说没有意义。
版本:
PEAR Version: 1.5.0 PHP Version: 4.4.9 Zend Engine Version: 1.3.0
我知道系统(服务器)是非常不同的(感谢nojak提出这个问题;我原来的问题是模糊的)。 操作系统,PHP版本,可能还有很多其他configuration是完全不同的。 我的主要问题是,如果PEAR和PHP在这两种情况下都具有电子邮件function,并且我的脚本在我的本地设置上运行,那么1and1服务器将无法正常工作? 我正在寻找其他疑难解答来尝试。
我对我的无知事先道歉。 我在这里先向您的帮助表示感谢。
编辑
这是我的function:
require_once('Mail.php'); require('Mail/mime.php'); function send_form_mail($body) { $from = "<***>"; $to = "<***>"; $subject = $body[0]; $host = "smtp.1and1.com"; $port = "587"; $username = "***"; $password = "***"; $headers = array( 'From' => $from, 'To' => $to, 'Subject' => $subject ); $smtp = Mail::factory('mail', array( 'host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password )); $text_field_array = array( '', '' ); for ($i = 1, $size = sizeof($body) + 1; $i < $size; $i++) { $text_body .= $text_field_array[$i] . $body[$i] . '\n'; } $html_field_array = array( '', '' ); for ($i = 1, $size = sizeof($body) + 1; $i < $size; $i++) { $html_body .= $html_field_array[$i] . $body[$i] . '<br />'; } $mime = new Mail_mime(); $mime -> setTXTBody($text_body); $mime -> setHTMLBody($html_body); $email_body = $mime -> get(); $headers = $mime -> headers($headers); $mail = $smtp -> send($to, $headers, $email_body); if (PEAR::isError($mail)) { echo("<p>We've encountered and an error: " . $mail -> getMessage() . "</p>"); } }
请注意,我在上面的函数中标出了敏感字符。
这里有1and1与我分享的要点:
这是通过调整服务器上PEAR的path解决的。 我实际上安装在另一个目录,并指出我的function在那里。