我尝试使用SwiftmailerBundle和使用多个邮件程序的电子邮件,swiftmailer.mailer.reserve使用gmail,我有错误:
Notice: Undefined property: Swift_Message::$*Swift_Mime_SimpleMimeEntity*_body
我的config.yml:
swiftmailer:
default_mailer: default
mailers:
default:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
spool: { type: memory }
reserve:
transport: "%mailer_transport1%"
host: "%mailer_host1%"
username: "%mailer_user1%"
password: "%mailer_password1%"
spool: { type: memory }
my parameters.yml:
mailer_transport1: gmail
mailer_host1: smtp.gmail.com
mailer_user1: ***@gmail.com
mailer_password1: ***
和我的控制员:
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
->setFrom('send@example.com')
->setTo($user->getEmail())
->setBody(
$this->renderView(
// app/Resources/views/Emails/registration.html.twig
'MyBundle:Mail:start.html.twig',
array('user' => $user, 'pass' => $pass, 'type' => $this->get('request')->request->get('usersRole'))
),
'text/html'
)
;
$test = $this->get('swiftmailer.mailer.reserve')->send($message);
我尝试这样并且有$ test = 1但是没有电子邮件可能在谷歌需要一些配置我不明白
$transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com')
->setPort(465)
->setEncryption('ssl')
->setUsername('email@gmail.com')
->setPassword('mypass')
;
$message = \Swift_Message::newInstance($transport)
->setSubject('Hello Email')
->setFrom('send@example.com')
->setTo($user->getEmail())
->setBody(
$this->renderView(
// app/Resources/views/Emails/registration.html.twig
'MyBundle:Mail:start.html.twig',
array('user' => $user, 'pass' => $pass, 'type' => $this->get('request')->request->get('usersRole'))
),
'text/html'
)
;
$test = $this->get('swiftmailer.mailer.reserve')->send($message);
栈跟踪
堆栈跟踪
Failed to authenticate on SMTP server with username "shuba.ivan.vikt@gmail.com" using 1 possible authenticators
500 Internal Server Error - Swift_TransportException
堆栈跟踪
in vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php at line 181 -
}
}
}
throw new Swift_TransportException(
'Failed to authenticate on SMTP server with username "'.
$this->_username.'" using '.$count.' possible authenticators'
);
at Swift_Transport_Esmtp_AuthHandler ->afterEhlo (object(Swift_Transport_EsmtpTransport))
in vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php at line 307 +
at Swift_Transport_EsmtpTransport ->_doHeloCommand ()
in vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php at line 118 +
at Swift_Transport_AbstractSmtpTransport ->start ()
in vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php at line 79 +
at Swift_Mailer ->send (object(Swift_Message))
in src/Artel/AdminBundle/Controller/BitController.php at line 172 +
at BitController ->sendEmail (object(Project), object(Developer), object(Bit))
in src/Artel/AdminBundle/Controller/BitController.php at line 75 +
尝试yandex并将文件保存在dirrectory
中 transport: %mailer_transport1%
host: %mailer_host1%
port: %mailer_port1%
username: %mailer_user1%
encryption: %mailer_encryption1%
auth_mode: %mailer_auth_mode1%
password: %mailer_password1%
spool:
type: file
path: "%kernel.root_dir%/../spool"
mailer_transport1: smtp
mailer_host1: smtp.yandex.ru
mailer_user1: ***@yandex.ru
mailer_password1: ***
mailer_encryption1: ssl
mailer_auth_mode1: login
mailer_port1: 465
$mailer = $this->get('swiftmailer.mailer.reserve');
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
->setFrom('send@example.com')
->setTo($user->getUser()->first()->getEmail())
->setBody(
$this->renderView(
// app/Resources/views/Emails/registration.html.twig
'MyBundle:Mail:hello.html.twig'
),
'text/html'
)
;
$test = $mailer->send($message);
并且再次有$ test = 1但没有电子邮件 - > setTo($ user-> getUser() - > first() - > getEmail())
答案 0 :(得分:0)
也许使用SSL连接或/并使用SwiftMailer的addPart()函数获取2种不同格式的邮件