2012-03-05 2 views
1

в моем веб-сайте я разработали функцию почты см мой код ..Php функция почты не работает должным к [email protected]

$headers='MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html;charset=iso-8859-1' . "\r\n"; 
    $headers .= 'From:'.$name.' <'.$email.'>' . "\r\n"; 
    $mail_body=""; 
    $mail_body.='<table style="border:1px solid #993300" width="400" cellspacing="3" cellspacing="5">'; 
    $mail_body.='<tr><td style="padding-left:10px; line-height:25px;" >'; 
    $mail_body.='<center><b>Enquiry Information</b></center><br>'; 
    $mail_body.='Name :&nbsp;'.$name.'<br>'; 
    $mail_body.='Email :&nbsp;'.$email.'<br>'; 
    $mail_body.='Phone Number :&nbsp;'.$phno.'<br>'; 
    $mail_body.='Package :&nbsp;'.$package.'<br>'; 
    $mail_body.='Category :&nbsp;'.$category.'<br><br>'; 
    $mail_body.='Vehicle Type :&nbsp;'.$vehicle.'<br><br>'; 
    $mail_body.='Traveling From :&nbsp;'.$travelfrom.'<br><br>'; 
    $mail_body.='Arrival City :&nbsp;'.$arival.'<br><br>'; 
    $mail_body.='Date :&nbsp;'.$date.'<br><br>'; 
    $mail_body.='Adult :&nbsp;'.$adult.'<br><br>'; 
    $mail_body.='Children :&nbsp;'.$children.'<br><br>'; 
    $mail_body.='Food :&nbsp;'.$food.'<br><br>'; 
    $mail_body.='Travel Requirements :&nbsp;'.$requirement.'<br><br>'; 
    $mail_body.='Duration :&nbsp;'.$duration.'<br><br>'; 
    $mail_body.=' promotions :&nbsp;'.$promotion.'<br><br>'; 
    $mail_body.='Addons :&nbsp;'.$addone.'<br><br>'; 
    $mail_body.='Preferred Destinations :&nbsp;'.$destination.'<br><br>'; 
    $mail_body.='</td></tr>'; 
    $mail_body.='</table>'; 
    $mailSend=mail('[email protected]', "Country Travelmart" , $mail_body, $headers); 
    if($mailSend){ 
      header("location:success.html"); 
      }else{ 
      header("location:sorry.html"); 
      } 

Я вижу success.html страницу, после того, как функции почты. Но почта отсутствует в '[email protected] Я изменил почтовый адрес на мой адрес электронной почты, я получил почту. Тогда почему почта не отправляется на '[email protected]

Кто-нибудь знает об этом?

Ответить

+0

Вы проверили папку со спамом ...? –

+0

да, но пусто –

+0

Вы также проверяете его на другой адрес электронной почты? –

ответ

0

Нежелательная почта? Электронная почта фильтруется? Этот сервер, который отправляет электронную почту, разрешает travel.com на тот же IP-адрес, что и вы?

Очевидно, что ваш PHP-код не имеет ошибки в нем, если он отправляет другие адреса электронной почты.

+0

было бы лучше, если бы это был комментарий, а не ответ ..! –

0

Некоторые почтовые серверы требуют определенных настроек, позволяющих вам отправлять электронную почту, такие как безопасное SMTP-соединение с сервером, который php не может обрабатывать в своих родных библиотеках.

груша имеет библиотеку, которую можно использовать для добавления SMTP аутентификации по адресу: http://pear.php.net/package/Mail

Дополнительно, вы можете захотеть устранить, установив свой собственный адрес электронной почты в качестве отправителя - в случае отскока обратной электронной почты, затем сможет получить его и устранить неполадку.

+0

Они уже сказали, что получают почту, когда они меняют адрес. Но хороший первый шаг. Я поклонник PHPMailer. Как это сравнивается с библиотекой груши? – Anthony

+0

Он получает почту штрафа, когда он меняет «приемник». Прием адресов электронной почты также может быть настроен на отказ от писем, отправляемых без проверки подлинности SMTP. Я не использовал PHPMailer, хотя я слышал, что он приличный. Я использую грушу lib в течение 2 лет, и она очень хорошо справилась со своей задачей :) –

+0

Ах, измените ответ-на, он тоже будет работать и может вернуться независимо от того, что. Хороший звонок. – Anthony

0

Если почта проходит через другие учетные записи и возвращает успех для этой учетной записи, но никогда не появляется, то проблема не в коде, это связано с тем, что ваше сообщение блокируется целевым сервером.

Возможные причины:

  1. Сервер назначения думает, что это спам. Это почти наверняка. Я работал над облачным сервисом спама, и веб-разработчики, использующие почту PHP и другие агенты слепой передачи, ненавидели нас.

  2. Конечный сервер разрешает отправлять определенные IP-адреса (обычно это брандмауэр или белый список). Вероятно, вы не можете исправить это, если не знаете, что такое IT-парень для travel.com и купите им пиво.

  3. Сервер назначения отклоняет сообщения с конкретными заголовками, которые он не понимает, не установлен вообще или вообще отключен.

Возможные решения:

  1. Единственное возможное решение, которое будет включать в себя сохранение текущий код на месте будет изменение или добавление заголовка в исходящее сообщение. Это, вероятно, не лучшее исправление, потому что:

    • Заголовки могут быть в порядке, и сообщение блокируется по другим причинам.
    • Если это заголовок, отслеживание которого требует получения сообщения с полными заголовками (как правило, ответ отказов будет иметь их, но не всегда)
    • Использование почтовой функции PHP устарело и не идеально подходит для любых (по причинам, которые вы видите)
  2. Использование сторонней почтовой библиотеки, такой как класс почты Pear или PHPMailer (который я использую). Однако имейте в виду, что причина, по которой они работают более надежно, заключается в том, что вы предоставляете данные SMTP-сервера и учетные данные, как и для Outlook или Thunderbird. Функция почты PHP использует SMTP-сервер хост-сервера для отправки, что вызывает проблемы, подобные вашим, но также не требует пароля и разрешения на использование. Сказав это, лучше отправить через зарегистрированный и подтвержденный адрес, так как он менее спам и потому, что SMTP-сервер вашей учетной записи может ручаться за вас, так сказать. Но я бы инвестировал в получение учетной записи электронной почты только для использования в ваших PHP-скриптах, а не для использования вашей личной учетной записи. Кроме того, имейте в виду, что GMail является настоящей головной болью для этой цели, поэтому просто пропустите ее, если сможете.

  3. Выделенные массовые почтовые счета, такие как Amazon SES или MailChimp. Лучшее из обоих миров, потому что они делают массовую рассылку лучше, чем ваш SMTP-сервер, когда-либо, она привязана к учетной записи пользователя, которую вы настроили с ними, а не к вашему фактическому адресу электронной почты, и большинство из них предоставляют библиотеки PHP. Улов: они не дешевы. Экономия масштаба, чтобы получить хороший доход от инвестиций, составляет тонны электронных писем ежедневно.

Моя рекомендация пойти с бесплатной и уважаемой библиотеки почтовой программы и оплаты (если вы не сделали) для нового адреса электронной почты только для сайта, чтобы отправить почту. Когда дело доходит до того, что вы отправляете больше электронных писем, чем ваш почтовый сервер может обрабатывать через день, посмотрите на массовую почтовую службу.

1

Я думаю, что использование PHPMailer может помочь вам увеличить количество запретов на электронную почту как спам.

Смежные вопросы