Новое для PHP и Swiftmailer и еще не заработало . Я загрузил каталог / lib / в каталог в корне моего общего веб-сервера из Hostgator. Я загрузил следующее внутри в каталоге выше / lib /:
<?php require_once 'lib/swift_required.php'; $transport = Swift_SmtpTransport::newInstance('mail.****.com', 25) ->setUsername('****@****.com') ->setPassword('****'); $mailer = Swift_Mailer::newInstance($transport); $message = Swift_Message::newInstance('Subject Here') ->setFrom(array('****@****.com' => '****')) ->setTo(array('****@****.com' => '****')); $message->setBody('This is the message'); if (!$mailer->send($message, $errors)) { echo "Error:"; print_r($errors); } ?>
Он не отправляет сообщение, но я также не могу просмотреть журналы ошибок. У меня есть регистрация ошибок во всех разделах моего php.ini – но когда я пытаюсь перейти туда, где я загрузил .php-файл в браузере, я получаю ошибку 404. Когда я подключаюсь через ssh, у меня есть доступ к тюремному доступу. Когда я попытался перейти в /var/log/php-scripts.log, у меня не было разрешения. Хотите узнать, где еще я могу найти ошибки для этого, чтобы исправить это?
Вы должны попытаться использовать плагин swiftmailer logger .
Плагины Logger помогают при отладке в процессе отправки. Это может помочь определить, почему сервер SMTP отклоняет адреса, или любые другие труднодоступные проблемы, которые могут возникнуть.
Вам нужно только создать новый экземпляр регистратора и добавить его к объекту mailer с помощью метода registerPlugin ().
<?php require_once 'lib/swift_required.php'; $transport = Swift_SmtpTransport::newInstance('mail.****.com', 25) ->setUsername('****@****.com') ->setPassword('****'); $mailer = Swift_Mailer::newInstance($transport); $logger = new \Swift_Plugins_Loggers_ArrayLogger(); $mailer->registerPlugin(new \Swift_Plugins_LoggerPlugin($logger)); $message = Swift_Message::newInstance('Subject Here') ->setFrom(array('****@****.com' => '****')) ->setTo(array('****@****.com' => '****')); $message->setBody('This is the message'); if (!$mailer->send($message, $errors)) { // Dump the log contents // NOTE: The EchoLogger dumps in realtime so dump() does nothing for it. We use ArrayLogger instead. echo "Error:" . $logger->dump(); }else{ echo "Successfull."; } ?>
Редактировать :
Swift_Plugins_Loggers_ArrayLogger: хранит коллекцию сообщений журнала внутри массива. Содержимое массива может быть очищено или выгружено на экран.
Swift_Plugins_Loggers_EchoLogger: выводит вывод на экран в реальном времени. Handy для очень рудиментарного вывода отладки.
Используйте обработку транспортных исключений, например:
try { $mailer->send($message); } catch (\Swift_TransportException $e) { echo $e->getMessage(); }
Под вашим быстрым расширением mailer есть обработчик исключений.
корень / Lib / классы / Swift / SwiftException.php
По умолчанию он делает некоторые запутанные вещи с ошибками, чтобы их было очень сложно найти. Большинство страниц там также рекомендуют одинаково запутанные способы регистрации ошибок.
Если вы просто хотите увидеть ошибку, добавьте эхо, как показано ниже (или что-то еще, что вы можете с ним сделать).
class Swift_SwiftException extends Exception { /** * Create a new SwiftException with $message. * * @param string $message */ public function __construct($message) { echo $message; parent::__construct($message); } }