読者です 読者をやめる 読者になる 読者になる

SwiftMailerでRFC違反のメールアドレスでもメールを送信したい

Symfony2 Doctrine2

Symfony2の標準メールライブラリはSwift_Mailerが使われている。

メール送信を試していたが、どうも送信前にメールアドレスのチェックを行うらしくRFC違反しているメールアドレスだと例外が投げられて送れない…

例外が投げられる部分は下記の箇所

vendor/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php

  private function _assertValidAddress($address)
  {
    if (!preg_match('/^' . $this->getGrammar()->getDefinition('addr-spec') . '$/D',
      $address))
    {
      throw new Swift_RfcComplianceException(
        'Address in mailbox given [' . $address .
        '] does not comply with RFC 2822, 3.6.2.'
        );
    }
  }

とりあえずこのチェックを回避するオプションはないっぽいので、throwの部分をコメントアウトして強制的に送るしかないっぽい