Мне нужно отправить электронное письмо, используя swiftmailer, из пользовательской функции пакетной обработки, но когда я добавляю «\ Swift_Mailer $ mailer» в параметр, я получаю эту ошибку: «Слишком мало аргументов для функции App \ Controller \ ContactAdminController :: batchActionMail (), 2 передано в /var/www/html/cvtheque/src/Controller/ContactAdminController.php по строке 749 и ровно 3 ожидается "
. Я ранее настроил отправку электронной почты, я отправляю электронные письма из другой функции иэто работает очень хорошо.Кажется, что проблема заключается в том, что эта функция находится в пользовательском CRUDCONTROLLER для класса сонаты администратора
/**
* @param ProxyQueryInterface $selectedModelQuery
* @param Request $request
* @return RedirectResponse
*/
public function batchActionMail(ProxyQueryInterface $selectedModelQuery, Request $request = null, \Swift_Mailer $mailer)
{
$this->admin->checkAccess('edit');
$this->admin->checkAccess('delete');
$modelManager = $this->admin->getModelManager();
$target = $modelManager->find($this->admin->getClass(), $request->get('targetId'));
$id = $request->get('idx');
$conn = $this->get('doctrine.dbal.default_connection');
$typedemail = $_POST['typemail'];
if ($typedemail == 'decline') {
$type = 'décliné';
$infomail = $conn->query("SELECT * FROM MAILS WHERE nom = '$type' ");
$infomail = $infomail->fetch();
$sujet = $infomail['sujet'];
$contenu = $infomail['contenu'];
foreach ($id as $person) {
$email = $conn->query("SELECT email FROM CONTACT WHERE id = '$person'");
$email = $email->fetch();
$email = $email['email'];
$mail = (new \Swift_Message($sujet))
->setFrom('anaddress@email.fr')
->setTo($email)
->setBody($contenu);
$mailer->send($mail);
Я пытался добавить:
$transport = (new \Swift_SmtpTransport('smtp@gmail.com', 465, 'ssl'))
->setUsername('ronaldmcdo85@gmail.com')
->setPassword('xxxxxx');
$mailer = new \Swift_Mailer($transport);
перед $mail = ... Но он все еще не работает
Эта функция должна позволять отправлять одно или несколько сообщений электронной почты с адреса на один или несколько выбранных адресов