Php邮件有时不发送

时间:2014-10-16 05:46:56

标签: php email

这是我发送电子邮件的PHP代码。

  <?php

       class mailer {
       public function send_request_mail($to, $msg) {
       $from="abcd@xyz.com";
       $headers = 'MIME-Version: 1.0' . "\r\n".'Content-type: text/html; charset=iso-8859-1' . "\r\n".'From: ' . $from . "\r\n" . 'Reply-To: ' . $from . "\r\n" . 'X-Mailer: PHP/' . phpversion ();
       $message = "ip 192.168.0.9:9035";
       $subject = "subject";
       mail ( $to, $subject, $message, $headers );

             }
       }

$mail=new mailer();

$mail->send_request_mail("abcd@xyz.com", "msg");
?>

有时它的作品(对于某些消息)。当我尝试发送如上所述的IP地址时,它会失败。帮助我

2 个答案:

答案 0 :(得分:2)

希望你做得很好。

必须在php.ini文件中正确配置PHP,并提供系统发送电子邮件的详细信息。打开/ etc /目录中的php.ini文件,找到[mail function]的部分。

Windows用户应确保提供两个指令。第一种称为SMTP,用于定义您的电子邮件服务器地址。第二个叫做sendmail_from,它定义了你自己的电子邮件地址。

Windows的配置应如下所示:

[mail function]
; For Win32 only.
SMTP = smtp.secureserver.net

; For win32 only
sendmail_from = webmaster@tutorialspoint.com

Linux用户只需要让PHP知道他们的sendmail应用程序的位置。应该为sendmail_path指令指定路径和任何所需的开关。

Linux的配置应如下所示:

[mail function]
; For Win32 only.
SMTP = 

; For win32 only
sendmail_from = 

; For Unix only
sendmail_path = /usr/sbin/sendmail -t -i

PHP使用mail()函数发送电子邮件。此函数需要三个必需参数来指定收件人的电子邮件地址,邮件主题和实际邮件,还有其他两个可选参数。

mail( to, subject, message, headers, parameters );

示例:

以下示例将向xyz@somedomain.com发送HTML电子邮件,并将其复制到afgh@somedomain.com。您可以对这个程序进行编码,使其能够接收用户的所有内容,然后发送电子邮件。

<html>
<head>
<title>Sending HTML email using PHP</title>
</head>
<body>
<?php
   $to = "xyz@somedomain.com";
   $subject = "This is subject";
   $message = "<b>This is HTML message.</b>";
   $message .= "<h1>This is headline.</h1>";
   $header = "From:abc@somedomain.com \r\n";
   $header = "Cc:afgh@somedomain.com \r\n";
   $header .= "MIME-Version: 1.0\r\n";
   $header .= "Content-type: text/html\r\n";
   $retval = mail ($to,$subject,$message,$header);
   if( $retval == true )
   {
      echo "Message sent successfully...";
   }
   else
   {
      echo "Message could not be sent...";
   }
?>
</body>
</html>

希望这对你有用!!!干杯!!

等待你的积极评价!!!

答案 1 :(得分:0)

您可能希望使用PHPMailer之类的内容,因为当您使用mail()功能时,您的电子邮件很可能会以垃圾邮件或垃圾邮件框结束。

以下是使用PHPMailer的示例代码,

    <?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'user@example.com';                 // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to

$mail->From = 'abcd@xyz.com';
$mail->FromName = 'Mailer';
$mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
$mail->addAddress('ellen@example.com');               // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

$mail->WordWrap = 50;                                 // Set word wrap to 50 characters
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'ip 192.168.0.9:9035';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}