PHP: PEAR Posta bağlayan ama (yok hatası) göndermiyor?

2 Cevap php

Benim komut dosyası e-posta göndermek için PEAR'ın Posta paketi kullanıyorum. Ben her şeyin bağlı ve düzgün ilan var eminim, ama komut dosyası çalıştırıldığında, sadece aslında e-posta göndererek olmadan benim posta sunucusuna keser hemen sonra bağlanır.

Benim Postfix günlüklerinden:

Nov 18 16:15:49 mailer postfix/smtpd[30346]: connect from xxx-xxx-xxx-xxx.static.cloud-ips.com[xxx.xxx.xxx.xxx]
Nov 18 16:15:49 mailer postfix/smtpd[30346]: disconnect from xxx-xxx-xxx-xxx.static.cloud-ips.com[xxx.xxx.xxx.xxx]

Ne verir?


<?php

  require_once('Mail.php'); // loads in PEAR Mail package

  $mailer_params['host'] = 'mailer.xxx.com';
  $mailer_params['port'] = 25;
  $mailer_params['auth'] = true;
  $mailer_params['username'] = 'user@mailer.xxx.com';
  $mailer_params['password'] = 'password';

  $mail =& Mail::factory('smtp', $mailer_params);

  $headers = array(
    'From' => 'user@xxx.com',
    'Reply-To' => 'user@xxx.com',
    'Subject' => 'Test Email'
  );

  $message = "whatever";

  $mail->send('Test <other.user@xxx.com>', $headers, $message);

?>

Ben sorun olmadan bunu kullanarak diğer bazı uygulamalar var çünkü benim Postfix sunucu çalıştığını biliyorum. Onlar bu diğer uygulamalar için olduğu gibi kullanıcı kimlik bilgileri bu komut aynıdır.

Eğer yardımcı olur benim Postfix sunucu, SASL_auth (CRAM-MD5 ile yapılandırılmış) kullanıyor. Ben bir hata mesajı veya PHP tarafında ya gitmek için Postfix tarafında ya da üzerinde bir şey olsaydı, ama yok hepsi sadece başka bir açıklama ile ayırın bağlamak.

2 Cevap

Ben birkaç gün önce bu sorunu vardı. $mailer_params['debug'] denemek ve komut satırından komut dosyasını çalıştırın, $mailer_params['auth'] = 'CRAM-MD5' ve aynı zamanda ekstra bilgi için deneyin. Hala işe yaramazsa, try $mail_params['auth'] = 'LOGIN'.

Umarım bu yardımcı olur.

İşte size PHP bir durum hata alabilirsiniz görmek, denemek istiyorum ilk şey:

<?php

try {


      require_once('Mail.php'); // loads in PEAR Mail package

      $mailer_params['host'] = 'mailer.xxx.com';
      $mailer_params['port'] = 25;
      $mailer_params['auth'] = true;
      $mailer_params['username'] = 'user@mailer.xxx.com';
      $mailer_params['password'] = 'password';

      $mail =& Mail::factory('smtp', $mailer_params);

      $headers = array(
        'From' => 'user@xxx.com',
        'Reply-To' => 'user@xxx.com',
        'Subject' => 'Test Email'
      );

      $message = "whatever";

      $mail->send('Test <other.user@xxx.com>', $headers, $message);

    } catch (Exception $e) {
        echo "Exception: " . $e->getMessage();
    }

Ve ben merak dışarı, diğer bazı sorularım var:

  1. Onlar aynı sunucu üzerinde, diğer uygulamalar ile postfix sunucu işleri söz? Bu posta gibi uzak bir istek ya da aynı sunucu üzerinde bir uygulama

  2. Eğer farklı yapılıyor görmek için çalışan sunucu üzerinde herhangi bir şey ters mühendislik?

  3. Ne sunucuda olduğu gibi aynı etki e-posta gönderiyor?

Söz 1 ve 3 arkasındaki esas Bazı büyük bir konak ya da blok anlaşma veya posta ile ilgili kısıtlamalar koymak gerçektir. Spam hesapları oluşturabilir ve onlar yasaklı kadar onları istismar edecek olmasıdır. Bu bizim dürüst insanlar geri kalanı için zor mail gönderme yapar, ama her gün olur.

Ben geri cevap ve biz sorun bulabilirsiniz görelim, bu düşünce için yiyecek verir umuyoruz.