PHP邮件功能不工作

PHP邮件功能不工作,php,wamp,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,$heade

我已经为邮件功能编写了一个基本脚本。 我正在尝试通过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\u from。 它给了我以下的错误

警告:邮件[function.mail]:无法连接到位于的邮件服务器 mucse409.eu.xyz.com端口25,请验证您的SMTP和SMTP_端口 在php.ini中设置或在第9行的C:\wamp\www\email.php中使用ini\u设置 邮件已发送


我可以从我的机器ping SMTP地址。请引导我

您还可以使用诸如ms outlook或mozilla thunderbird之类的邮件客户端将邮件从这台计算机发送到此smtp服务器吗


我曾经遇到一个问题,由于病毒感染,我的提供商阻止了指向外部smtp端口的通信,因此我无法发送邮件,但我可以ping服务器和端口。

可能会被防火墙或类似的东西阻止


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

根据本教程我可以发送邮件

使用Gmail和PHPMailer发送电子邮件新的自动更新 发电机已准备就绪,OCLALIGHT已运行很长时间 完成了,这一点和那一点已经在地板上抛光了 更新生成

这个过程相当复杂,涉及逆向工程, 数据挖掘、打包、分发以及与我们的 糟糕的Windows服务器,在我和最终的Linux之间 解放

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

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

如何做到这一点:

首先,对于Windows,您需要具有支持OpenSSL的PHP 您需要安装PHP并在 组件列表,如果您已经安装了PHP,不用担心 重新安装将保留您的配置,您可以选择 OpenSSL

然后下载PHPMailer,并在主php附近提取它 文件

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

将您的Gmail帐户配置为使用POP邮件,但不使用IMAP,仅使用POP, 只是砰的一声

现在是代码:

在这段代码中,我将电子邮件发送给一群人,因此我使用 “密件抄送:”字段而不是“收件人:”字段,要添加“收件人:”您将使用 AddAddress$email$name

一个可能的升级是使用MySQL数据库来存储 地址,并提供用于添加和删除的web界面 他们就目前而言,这已经足够了

苏记住: PHP与OpenSSL;PHPMailer;创建一个Gmail帐户;激活POP主机: smtp.gmail.com;SMTPAuth=true;SMTPSEcure=ssl;港口:465 ;;具有域的用户; 密码$邮件发送


我可以从同一SMTP服务器通过MS outlook发送。可能是邮件提供商阻止了您的请求。要检查是否使用gmail SMTP,因为据我所知,gmail不会阻止你。这是gmail SMTP设置:SMTP.gmail.com端口:465或587其发出相同的错误警告:mail[function.mail]:无法连接到SMTP.gmail.com端口465的邮件服务器,在php.ini中验证您的SMTP和SMTP_端口设置,或者在发送的第8行邮件中使用C:\wamp\www\email.php中的ini_设置。我无法打开我的SMTP服务器地址或SMTP.gmail.com端口465/587。这是否意味着防火墙被阻止?是的,测试是否是本地防火墙的简单方法是在其他系统上尝试该端口,你知道它是开着的。很可能是某种防火墙。查看您计算机上的任何防火墙或防病毒类型的程序,如果您落后于防火墙或防病毒类型的程序,请查看路由器上的程序。
<?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”;
?>