@mail不在php发送邮件 [英] @mail not sending mail in php

查看:98
本文介绍了@mail不在php发送邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我第一次使用邮件功能。我试图使用这个邮件发送邮件,代码告诉我这是成功发送,但是我没有收到任何邮件。我很困惑,阅读了很多文章。请帮助我。

This is the first time I am using the mail function. I tried to send a mail using this and the code tells me it's "successfully sent", but I didn't receive any mail. I'm confused reading lots of articles on this. Please help me.

<?php
  if(isset($_POST['author'])&& isset($_POST['subject'])&& isset($_POST['text'])) {
    //Email
    $email_to = "lucy@yahoo.com";
    $email_subject = "Query From HYPERMARKETS";
    $name = $_POST['author']; // required
    $sub = $_POST['subject']; // required
    $comments = $_POST['text']; // required

    echo "POST:".$name.$sub.$comments;
    $error_message = "";

    $string_exp = "^[a-z .'-]+$";
    if(!strcmp($string_exp,$name)) {
      $error_message .= 'The Name you entered does not appear to be valid.<br />';
    }

    if(strlen($comments) < 5) {
      $error_message .= 'The Comments you entered do not appear to be valid.<br />';
    }

    if(strlen($error_message) > 0) {
      echo ("<center><table border=1 cellspacing=5 cellpadding=5><tr><th>$error_message</th></tr></table></center>");
    }
    $email_message = "Form details below.\n\n";
    $email_message .= "Name: ".$name."\n";
    $email_message .= "Subject: ".$sub."\n";
    $email_message .= "Comments: ".$comments."\n";


    // create email headers
    $headers = "From: mary@yahoo.com \r\n Reply-To: mary@yahoo.com \r\n" ;
    if(@mail($email_to, $email_subject, $email_message, $headers))
      echo "<center><table border=1 cellspacing=5 cellpadding=5><tr><th>MESSAGE SENT SUCCESSFULLY</th></tr></table></center>";
    else
      echo "<center><table border=1 cellspacing=5 cellpadding=5><tr><th>MESSAGE NOT SENT</th></tr></table></center>";
  }
  else
    echo ("<center><table border=1 cellspacing=5 cellpadding=5><tr><th>FILL ALL THE FIELDS..!!</th></tr></table></center>");
?>

嘿,我已将php.ini文件配置为

Hey I have configured my php.ini file as

[mail function]

   sendmail_from = postmaster@localhost
   SMTP = localhost
   smtp_port = 25
   sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
   sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"

它仍然无效。

推荐答案

mail()实际上并不发送邮件。它仅将您生成的消息提交到主机系统的邮件子系统来处理发送。结果为true表示邮件发送子系统将邮件接受为有效。它不表示消息已发送。

mail() doesn't actually send mail. It merely submits the message you've generated to the host system's mail subsystem to handle the sending. A result of true indicates that the mail sending subsystem accepted the message as valid. It doesn't indicate that the message was sent.

您需要查看邮件假脱机,查看邮件是否在等待传送,并在系统的邮件日志中查看是否在生成错误它尝试发送您的PHP生成的消息。

You'll need to look at your mail spool to see if the messages are in there awaiting delivery, and at your system's mail log to see if it is generating errors when it tries to send your PHP-generated messages.

即使消息已成功发送,并不意味着它将被接收。它可能被垃圾邮件过滤器捕获,或被服务器拒绝,或者只是简单地发送到错误的地址。它可能已经交付,最终被接收方的电子邮件客户端标记为垃圾邮件。任何数量的事情都可以防止发送消息,邮件的真实回复并不表示它已成功发送。

Even if the message has been successfully sent, it doesn't mean it will be received. It may be caught by a spam filter, or rejected by a server, or just plain sent to the wrong address. It may have been delivered and ended up being marked as junk mail by the receiver's e-mail client. Any number of things can prevent a message being sent, a true response from mail is no indication that it was sent successfully.

这篇关于@mail不在php发送邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆