2

次のエラーが表示されます。

受信者なしでメッセージを送信できません

これは、swiftmailer を使用してメールを送信しようとしているときです。私のコードは localhost で動作し、送信者から受信者に必要なすべてのパラメーターを持っていますが、受信者なしでは送信できないというエラーがスローされます。

これが私のコードです:

public function email()
{


    Mail::send('emails.auth.mail', array('token'=>'SAMPLE'), function($message){
        $message = Swift_Message::newInstance();
        $email = $_POST['email']; $name = $_POST['name']; $subject = $_POST['subject']; $msg = $_POST['msg']; 

        $message = Swift_Message::newInstance()
            ->setFrom(array($email => $name))
            ->setTo(array('name@gmail.com' => 'Name'))           
            ->setSubject($subject)
            ->setBody($msg);




        $transport = Swift_MailTransport::newInstance('smtp.gmail.com', 465, 'ssl');
        //$transport->setLocalDomain('[127.0.0.1]');

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

             var_dump('worked');
        }else{
            var_dump('Did not send mail');
        }
  }

}

4

3 に答える 3

7

これは、実装に SMTP 情報を追加しなくても実行できます Mail::send()

app/config/mail.phpにアクセスして、必要に応じて以下を編集します:

'host' => 'smtp.gmail.com',
'port' => 465,
'encryption' => 'ssl',
'username' => 'your_username',
'password' => 'your_password',

次に、コード次のように単純にする必要があります。

public function email()
{
    Mail::send('emails.auth.mail', array('token'=>'SAMPLE'), function($message)
    {
        $message->from( Input::get('email'), Input::get('name') );

        $message->to('name@gmail.com', 'Name')->subject( Input::get('subject') );
    });
}

したがって、うまくいけば、問題は構成の 1 つです。app/config/mail.php動作していないサーバーの構成設定を上書きする可能性のある他の環境セットアップがありますか?

于 2013-08-13T21:49:39.217 に答える
1

Gmail アカウントを SMTP サーバーとして使用する場合は、app/config/mail.php で次のように設定します。

'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 465,
'encryption' => 'ssl',
'username' => 'your-email@gmail.com',
'password' => 'your-password',

オンライン サーバーに切り替えるときは、このファイルを保護するか、プロバイダーを切り替えて、Gmail の資格情報が公開されないようにする必要があります。ポート 587 は、gmail ではなく mailgun 用です。

于 2013-11-22T05:42:16.360 に答える