Gönderdi olarak rapor ediliyor olsa bile Neden e-posta PHP aracılığıyla gönderilen varlık değildir?

4 Cevap php

PHP postalar gönderir çalışıyorum. Ben bir e-posta göndermek için kullanılan kod CakePHP aşağıda verilmiştir. Ben mesajı benim web sayfasında 'Basit E-posta Gönderilmiş' olsun ama posta benim doğuştan teslim edilmez. Ben bir şey eksik?

Değerler to, subject ve link alanları kullanıcı arabiriminde girilen değerler ile ayarlanır.

    $this->set('to',$this->params['form']['to']);
    $this->set('subject',$this->params['form']['subject']);
    $this->set('link',$this->params['form']['link']);
    $this->Email->to      = to;
    $this->Email->subject = subject;
    $this->Email->from    = 'someperson@somedomain.com';
    $this->Email->delivery= 'mail';
    $this->Email->sendAs='text';
    $this->Email->template = 'simple_message';
    //$this->Email->send(link);
    if ( $this->Email->send(link) ) {

        $this->Session->setFlash('Simple email sent');
    } else {
        $this->Session->setFlash('Simple email not sent');
    }

4 Cevap

Linux sisteminde, muhtemelen bir sendmail komut zaten yüklü olacak ve PHP kullanacaktır. Bu size ve çalışma değil ne var ise, o zaman ben Linux sistemin kendisi posta yapılandırma sorunları için bakmak istiyorum.

Windows sisteminde, posta göndermek için PHP istediğiniz SMTP sunucusunu yapılandırmanız gerekir. Bunu yapmak için normal şekilde php.ini olduğunu. The instructions for this are here.

Eposta-> teslim kurmamışsanız bu CakePHP için aynı olmalı - kullandığı ne olursa olsun PHP varsayılan gerekir.

Not: Kendi Linux kurulumu kullanıyorsanız, sadece ISS posta sunucusu kullanarak, hangi portu 25 engelliyor olabilir. Bu durumda ISP e-posta sunucusuna rota e-linux yapılandırmanız gerekir. Maybe this will help?

Ne zamandan beri 'için' (satır 4) geçerli bir hedef e-posta adresi nedir?

Sen hattı 'için' ayarı için değişken sözdizimi kullanmanız gerekir, ve 'konu' hattı. Bu satırları okumalısınız

$this->Email->to      = to;
$this->Email->subject = subject;

Ayrıca, ben hata ayıklama yardımcı olur E-posta bileşeni olarak adlandırılan hata bir niteliktir (Ben şu anda belgelerinde bulamıyorum) olduğuna inanıyorum. Bu tamamen doğru olmayabilir; Ben SMTP ile e-posta bileşeni kullanmak, ve smtpError olarak adlandırılan e-posta bileşeni tarafından belirlenen alır bir nitelik vardır. Ben bir hata kontrol etmek için kullanabileceğiniz error olarak adlandırılan bir olduğuna inanıyorum - bu sorun burada yatıyor anlatacağım kod içermelidir.

Eğer bir e-posta göndermeye çalıştığınızda sonra yanlış bir ifadedir durumda, her zaman bir var_dump( $this->Email ); yapabilirsiniz. Bu nesnenin tüm içeriğini dökümü olacaktır, bu yüzden doğru niteliklerini kurduysanız görebilirsiniz, ve bu hata öznitelik adı ne bulmanıza yardımcı olacaktır.

Localhost bu posta veya bir web sunucusu gönderme musunuz?