将FOSUserBundle重置电子邮件与Amazon SES集成

时间:2012-10-15 04:19:33

标签: symfony fosuserbundle amazon-ses

我在发送电子邮件时将我的后缀配置为使用Amazon SES。 我正在尝试使用FOSUserBundle的功能来发送用户密码重置的电子邮件。 不幸的是,邮件永远不会到达邮箱,亚马逊SES不接受FOSUserBundle伪造的电子邮件。

这个电子邮件有什么问题:

Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=utf-8
MIME-Version: 1.0
Date: Mon, 15 Oct 2012 04:07:56 +0000
Message-ID: <1350274076.507b8c1c8cee8@www.yourownpoet.com>
From: quilly@YourOwnPoet.com
Subject: blablou
To: toto@gmail.com
Bcc: 
    <html><body>whatever</body></html>

这既不起作用:

Content-Type: multipart/alternative;
boundary="_=_swift_v4_1350274671507b8e6f82b5f_=_"
MIME-Version: 1.0
Date: Mon, 15 Oct 2012 04:17:51 +0000
Message-ID: <1350274671.507b8e6f99894@www.yourownpoet.com>
From: quilly@YourOwnPoet.com
Subject: blablou
To: toto@gmail.com
Bcc: 
    <html><body>whatever</body></html>

我创建了自己的邮件服务,以便尝试使用不同标题的电子邮件(我使用SwiftMailer)。我应该如何伪造我的电子邮件以使其通过Amazon SES?

编辑:

我注意到其他内容类型的邮件:multipart / mixed;通过SES,但我没有设法强制内容类型字段为此值。有可能吗?以下是我伪造电子邮件的方式:

$message = \Swift_Message::newInstance()
        ->setContentType('multipart/mixed')
        ->setSubject('blablou')
        ->setFrom('quilly@YourOwnPoet.com')
        ->setTo('toto@gmail.com')
        ->setBody('<html><body>whatever</body></html>', 'text/html')
        ->addPart('fdsfsd', 'text/plain');

$this->mailer->send($message);

但内容类型仍然是“多部分/替代”..

1 个答案:

答案 0 :(得分:2)

好吧,找到了答案......离开这里的帖子,谁知道哪一天可能对某人有用。

问题不是来自内容类型,而是来自发件人的电子邮件地址! 请记住,您必须设置哪些电子邮件地址有权通过ses发送电子邮件..此电子邮件区分大小写!

您可以毫无问题地使用FOSserBundle提供的邮件程序,但请正确配置:

config.yml:

fos_user
    resetting:
        email:
            template: YOPYourOwnPoetBundle:Emails:resetEmail.html.twig
    from_email:
        address:        Quilly@YourOwnPoet.com /*set ses accepted email address here */
        sender_name:    Quilly
    service:
        mailer: fos_user.mailer.twig_swift