2014-10-16 2 views
0

вот мой php-код для отправки электронной почты.Php mail not Отправить иногда

<?php 

     class mailer { 
     public function send_request_mail($to, $msg) { 
     $from="[email protected]"; 
     $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("[email protected]", "msg"); 
?> 

иногда его работы (для некоторых сообщений) .При попытке отправить IP-адрес, как и выше, fails.help меня

ответ

2

Надеюсь, что вы делаете хорошо.

PHP должен быть правильно настроен в файле php.ini с информацией о том, как ваша система отправляет электронную почту. Откройте файл php.ini, доступный в каталоге/etc /, и найдите раздел, в котором находится [функция почты].

Пользователи Windows должны обеспечить поставку двух директив. Первый называется SMTP, который определяет адрес вашего почтового сервера. Вторая называется sendmail_from, которая определяет ваш собственный адрес электронной почты.

Конфигурация для Windows, должна выглядеть следующим образом:

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

; For win32 only 
sendmail_from = [email protected] 

пользователи 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(to, subject, message, headers, parameters); 

Пример:

Следующий пример будет отправить сообщение электронной почты в формате HTML для [email protected] копирования его [email protected] Вы можете запрограммировать эту программу таким образом, чтобы она получала все содержимое от пользователя, а затем отправляла электронное письмо.

<html> 
<head> 
<title>Sending HTML email using PHP</title> 
</head> 
<body> 
<?php 
    $to = "[email protected]"; 
    $subject = "This is subject"; 
    $message = "<b>This is HTML message.</b>"; 
    $message .= "<h1>This is headline.</h1>"; 
    $header = "From:[email protected] \r\n"; 
    $header = "Cc:[email protected] \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> 

Надеюсь, это вам будет полезно !!! Приветствия!

Жду ваших положительных отзывов !!!

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 = '[email protected]';     // 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 = '[email protected]'; 
$mail->FromName = 'Mailer'; 
$mail->addAddress('[email protected]', 'Joe User');  // Add a recipient 
$mail->addAddress('[email protected]');    // Name is optional 
$mail->addReplyTo('[email protected]', 'Information'); 
$mail->addCC('[email protected]'); 
$mail->addBCC('[email protected]'); 

$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'; 
} 
Смежные вопросы