2015-03-01 10 views
5

Şu anda aşağıdaki yapılandırmayı kullanarak e-posta almıyorum ve bir şey eksik veya belki bir şey eksik veya MAMP localhost üzerinde çalışmıyor mu merak mı? Ortak yapılandırma dizinindeE-posta göndermek için swiftMailer localhost'ta kullanılabilir mi?

ana-yerel.php sonra

'mailer' => [ 
     'class' => 'yii\swiftmailer\Mailer', 
     'viewPath' => '@common/mail', 
     // send all mails to a file by default. You have to set 
     // 'useFileTransport' to false and configure a transport 
     // for the mailer to send real emails. 
     'useFileTransport' => true, 
    ], 

Ve (bir başarı mesajı görüntüleniyor) e

public function submitreview($email) 
{ 
    //return Yii::$app->mailer->compose(['html' => '@app/mail-templates/submitreview']) 
    return Yii::$app->mailer->compose() 
     ->setTo($email) 
     ->setFrom([$this->email => $this->name]) 
     ->setSubject($this->title) 
     ->setTextBody($this->description) 
     ->attachContent($this->file) 
     ->send(); 
} 
+0

kaydedilir swiftMailer localhost üzerinde çalışmalıdır, ancak ISP mail sunucularınızı belirtmeniz ve muhtemelen onlarla bir kullanıcı adı ve şifre kullanmanız gerekecektir. Http://stackoverflow.com/questions/4485635/php-swiftmailer-localhost-test-setup veya https://www.google.com.au/#q=swiftmailer+localhost – Mayhem

+0

adresine başvurmak isterim. Bir posta sunucusu olarak localhost, sitenizi localhost üzerinde barındırmayan ve gmail posta sunucuları aracılığıyla posta gönderme .. Sonra posta sunucusu olarak hareket etmek için cıva posta gibi bir şeye ihtiyacınız olacak. – Mayhem

cevap

2

Sen ile Yii2 içinde localhost aracılığıyla posta gönderebilir göndermek için aşağıdaki yapılandırma.

'mailer' => [ 
     'class' => 'yii\swiftmailer\Mailer', 
     'useFileTransport' => false, 
     'transport' => [ 
      'class' => 'Swift_SmtpTransport', 
      'host' => 'smtp.gmail.com', 
      'username' => 'ENTER_EMAIL_ADDRESS_HERE', 
      'password' => 'ENTER_PASSWORD', 
      'port' => '587', 
      'encryption' => 'tls', 
     ], 
    ] 

ve denetleyici içinde

\Yii::$app->mail->compose('your_view', ['params' => $params]) 
    ->setFrom([\Yii::$app->params['supportEmail'] => 'Test Mail']) 
    ->setTo('[email protected]') 
    ->setSubject('This is a test mail ') 
    ->send(); 
+1

Bu localhost nasıl? Listelediğin ulaşım gmail. – DrewT

2

Sadece test için gmail kullanarak, yerel ana bilgisayardan posta göndermek için bu php dosyasını kullanılır m. Üretim için gittiğinizde, aktarım dosyasını orijinal kimlik bilgilerinizle değiştirin. posta daha sonra postalar 'çalışma zamanı' klasöründeki dosyalar olarak kaydedilir başarıyla olduğunu

useFileTransport true (geliştirme ortamında varsayılan) olarak ayarlandığında
<?php 
      $subject="Testing Mail"; 
      $body="<h2>This is the body</h2>"; 
      $to="*******@gmail.com"; //this is the to email address 

      require_once 'swiftmailer/swift_required.php'; 
      // Create the mail transport configuration 

      $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('######')->setPassword('######'); 
      //$transport = Swift_MailTransport::newInstance(); 
      $message = Swift_Message::newInstance() 
      ->setSubject($subject) 
      ->setFrom(array('######@gmail.com')) 
      ->setTo(array($to)) 
      ->setBody($body,'text/html'); 

      //send the message 
      $mailer = Swift_Mailer::newInstance($transport);   
      $result=$mailer->send($message); 

    ?> 
0

gönderilen eğer

$ sonuç, echo 1 olacaktır. Ne zaman sitenin arka uç bir kullanıcı olarak gelişmiş başlangıç ​​şablonu ve işaret kullanılarak (Ve kullanıcı kayıt e-postaları gönderen bir uzantısını kullanarak) eğer

Örneğin, kayıt e-posta /backend/runtime/mail