PHP邮件功能不起作用

时间:2009-09-04 10:07:36

标签: php wamp

我已经为邮件功能编写了一个基本脚本。 我试图通过WAMP服务器运行此脚本。

<?php
phpinfo();

$to = "mss@xyz.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "mohan.s@xyz.com";
$headers = "From: $from";
$res= mail($to,$subject,$message,$headers);
echo " $res Mail Sent.";
?> 

我在php.ini文件中设置了SMTP,sendmail_from。 它给我以下错误

  

警告:mail()[function.mail]:无法连接到mailserver   “mucse409.eu.xyz.com”端口25,验证您的“SMTP”和“smtp_port”   在php.ini中设置或在第9行的C:\ wamp \ www \ email.php中使用ini_set()   邮件已发送。

我能够从我的机器ping SMTP地址。请指导我。

3 个答案:

答案 0 :(得分:0)

您是否可以使用某些邮件客户端(如ms outlook或mozilla thunderbird)将邮件从此计算机发送到此smtp服务器?

我的提供商因为病毒感染阻止了指向外部smtp端口的流量,我遇到了问题,因此我无法发送邮件,但我可以ping服务器和端口。

答案 1 :(得分:0)

可能被防火墙或某些人阻止。

看看你是否可以用telnet打开25号端口(如果你没有这个软件,你可以下载putty)

答案 2 :(得分:0)

按照本教程,我可以发送邮件link text

  

使用Gmail和PHPMailer发送电子邮件新的自动更新   发电机准备好了,自OCRALight以来已经很久了   完成了一点点,这已经完成了   更新生成。

     

这个过程相当复杂,涉及逆向工程,   数据挖掘,包装,分销和我们的战斗很多   我和最终Linux之间的糟糕Windows服务器   解放。

     

道路上的每一步都是自动化,一个接一个,每个问题   已经解决和抛光,现在最后一块在他的位置,   自动电子邮件生成现在将进行更新并发送   每天,甚至周末和假期。

     

如果您对技术方面感兴趣,请继续阅读:

     

如何完成:

     

首先,您需要为Windows提供支持OpenSSL的PHP   你需要安装PHP并仔细选择OpenSSL   组件列表,如果您已经安装了PHP,请不要担心   重新安装将保持您的配置,您将能够选择   OpenSSL的。

     

然后下载PHPMailer,&amp; nbsp;并在主php附近提取它   文件。

     

我建议您使用Gmail帐户(显然)   为此做一个新的,主要是因为配置需要   非常精确,没有它你将无法自由使用它   失去功能或冒着破坏配置的风险。

     

将您的Gmail帐户配置为使用POP邮件,但不能使用IMAP,仅限POP,   只是POP。

     

现在代码:

<?php
require(”PHPMailer/class.phpmailer.php”);
$update_emails = array(
    ‘Juan Perez’ => ‘Juan_Perez@jalisco.gob.mx’,
    ‘Francisco Garcia’ => ‘fgarcia@hotmail.com’,
    ‘Diana la del Tunel’ => ‘diana@gmail.com’
  );

echo “\nSending Update Email\n”;

$mail = new PHPMailer();  // Instantiate your new class
$mail->IsSMTP();          // set mailer to use SMTP
$mail->SMTPAuth = true;   // turn on SMTP authentication
$mail->Host = “smtp.gmail.com”; // specify main and backup server
$mail->SMTPSecure= ’ssl’; //  Used instead of TLS when only POP mail is selected
$mail->Port = 465;        //  Used instead of 587 when only POP mail is selected

$mail->Username = “youremail@gmail.com”;  // SMTP username, you could use your google apps address too.
$mail->Password = “yaourextremelynotlamepassword”; // SMTP password

$mail->From = “youremail@gmail.com”; //Aparently must be the same as the UserName
$mail->FromName = “Your name”;
$mail->Subject = ‘The subject’;
$mail->Body = “The body of your message”;

foreach ($update_emails as $name => $email) {
  $mail->AddBcc($email, $name);
}

if(!$mail->Send())
{
  echo “There was an error sending the message:” . $mail->ErrorInfo;
  exit;
}
echo “Done…\n”;
?>
  

在此代码中,我将电子邮件发送给一群人,因此我使用了   “密件抄送:”字段而不是“To:”之一,添加“To:”即可使用   AddAddress($ email,$ name)。

     

可能的升级是使用MySQL数据库来存储   地址,&安培; NBSP;并提供添加和删除的Web界面   他们。目前,这已经足够了。

     

Soo记得:   PHP与OpenSSL; PHPMailer的;创建Gmail帐户;激活POP主机:   smtp.gmail.com; SMTPAUTH = TRUE; SMTPSEcure = SSL;港口:465;用户域名;   密码; $ MAIL-&安培; GT;发送();