Сфера применения Swfitmailer в действии - PullRequest
1 голос
/ 14 февраля 2020

У меня есть небольшая функция, которая реализует использование Swift_Mailer для обработки отправки электронных писем:

public function send(string $subject, $to, string $msg, $from = '')
{
    if (!empty($to)) {
        if (empty($from)) {
            $smtpSettings = $this->loadSettings();

            $from = [$smtpSettings['from_email'] => $smtpSettings['from_name']];
        }

        var_dump($to);

        $email = (new \Swift_Message($subject))
            ->setFrom($from)
            ->setTo($to)
            ->setBody($msg);

        // Send the message
        $result = $this->swift->send($email);
    } else {
        var_dump('nein');
    }
}

, которая используется здесь:

$mailer->send(
    'Some Subject',
    [$email],
    'Hello, world'
);

Это возвращает это сообщение:

0: адрес в указанном почтовом ящике [] не соответствует RF C 2822, 3.6.2.

После быстрого поиска в Google, кажется, Swift_Message экземпляр не получает значение $to должным образом.

Я добавил var_dump($to) к сценарию, чтобы увидеть, что на самом деле в нем, и я получаю:

array(1) {
  string(19) "someemail@domain.com"
}

Электронная почта выше psuedo для моего реального электронного письма, которое я скопировал / вставил в thunderbird и отправил электронное письмо - все хорошо, поэтому я знаю, что электронное письмо является действительным.

Однако сообщение об ошибке, похоже, показывает, что никакого электронного письма не было прошло. Мой код более или менее отражает документацию , но по какой-то причине мое письмо не передается.

Есть ли у Swift_Message какие-то странные проблемы с областью действия? Не похоже, что $subject или $from идут не так, так почему же $to потенциально не находится в области видимости?

1 Ответ

0 голосов
/ 14 февраля 2020

AbraCadaver привел меня к правильному пути, более того, мне вернулось сообщение об ошибке.

Я скопировал исходный код из документации и заменил значения по одному с соответствующим $var все работало, даже $to - сообщение представляло собой красную сельдь.

Переменная $from однако, это то, что сломало скрипт. Значение было неправильно отформатировано, исправление формата исправило сценарий.

Я установил $from на ['theemail@domain.com' => 'Some Name'] и все было хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...