0

gmail でメッセージを送信するように SwiftMailer を設定しようとしています。

これが私の構成です:

# Swiftmailer Configuration
swiftmailer:
    transport: gmail
    host:      ~
    username:  username@gmail.com
    password:  password

そして私のコントローラーアクション:

     public function registerAction(Request $request) {
                    $message = new \Swift_Message();                    
                            $message::newInstance()
                              ->setFrom('username@gmail.com')
                            ->setSubject('ssssssss')                            
                            ->setTo(array('username@gmail.com'))
                            ->setBody(
                                    'text is going here');       
                            $res = $this->get('mailer')->send($message);
}

そして、私がそれを実行すると:

送信者アドレスがないとメッセージを送信できません 500 内部サーバー エラー - Swift_TransportException

Stack Trace
in /var/www/local/symfony/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php at line 164   
        }
        if (!$reversePath = $this->_getReversePath($message)) {
            throw new Swift_TransportException(
                'Cannot send message without a sender address'
                );
        }
4

1 に答える 1

4

あなたの場合、パラメーターを Message コンストラクターに直接渡す必要があります。

迅速/メッセージ

public function __construct($subject = null, $body = null, $contentType = null, $charset = null) {
   // ...
}

public static function newInstance($subject = null, $body = null, $contentType = null, $charset = null)
{
    return new self($subject, $body, $contentType, $charset);
}

ソリューション1

$message = new Message();    
$message            
    ->setFrom('username@gmail.com')  // no static $message::newInstance() call here
    ->setSubject('ssssssss')                            
    ->setTo(array('username@gmail.com'))
    ->setBody('text is going here');       

ソリューション2

$message = new Message('ssssss','text is going here');
$message        
    ->setTo(array('username@gmail.com'))
    ->setFrom('username@gmail.com');

お役に立てれば。

于 2013-05-25T17:47:42.533 に答える