<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                {% raw %} # 在 Symfony 中發送郵件 > 原文: [http://zetcode.com/symfony/mail/](http://zetcode.com/symfony/mail/) Symfony 郵件教程顯示了如何在 Symfony 中發送簡單郵件。 Symfony 使用 SwiftMailer 發送電子郵件。 ## Symfony Symfony 是一組可重用的 PHP 組件和一個用于 Web 項目的 PHP 框架。 Symfony 是帶有一些商業附加組件的免費軟件。 Symfony 的靈感來自 Ruby on Rails,Django 和 Spring Framework。 ## SwiftMailer SwiftMailer 是免費的功能豐富的 PHP 郵件程序。 Symfony 通過其`symfony/swiftmailer-bundle`集成了 SwiftMailer。 ## Symfony 發送郵件示例 在示例中,我們發送了一封簡單的電子郵件。 我們使用 Twig 創建電子郵件模板。 ### 建立應用 我們首先使用`composer`建立應用。 ```php $ composer create-project symfony/skeleton mail $ cd mail ``` 我們創建一個新的 Symfony 骨架項目,然后進入新創建的項目目錄。 ```php $ composer req twig annotations monolog ``` 我們安裝了 Web 應用所需的三個基本 Symfony 包。 ```php $ composer req symfony/swiftmailer-bundle ``` 我們安裝`symfony/swiftmailer-bundle`。 ```php $ composer req maker server --dev ``` 我們安裝了用于開發的包:`maker`和`server`。 `.env` ```php ... MAILER_URL=smtp://smtp.example.com:465?encryption=ssl&auth_mode=login&username=admin@example.com&password=s$cret ``` 在`.env`文件中,設置`MAILER_URL`變量。 它包含將要發送電子郵件的 SMTP 服務器。 如果您是初學者,請避免使用 Gmail,因為由于 Gmail 的高度安全性,因此正確設置 Gmail 是一項復雜的任務。 而是使用托管服務提供商提供的 SMTP 服務器或諸如 mailgun 或 mailtrap 之類的服務。 必需的選項(例如端口號和加密)由提供商/服務提供。 ```php $ php bin/console make:controller TestMailController ``` 我們創建一個`TestMailController`,其中包含一個用于發送電子郵件的簡單鏈接。 `src/Controller/TestMailController.php` ```php <?php namespace App\Controller; use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; class TestMailController extends AbstractController { /** * @Route("/test/mail", name="test_mail") */ public function index(Request $request, \Swift_Mailer $mailer, LoggerInterface $logger) { $name = $request->query->get('name'); $message = new \Swift_Message('Test email'); $message->setFrom('admin@zetcode.com'); $message->setTo('admin2@zetcode.com'); $message->setBody( $this->renderView( 'emails/mymail.html.twig', ['name' => $name] ), 'text/html' ); $mailer->send($message); $logger->info('email sent'); $this->addFlash('notice', 'Email sent'); return $this->redirectToRoute('home'); } } ``` 在`TestMailController`的`index()`方法中,我們發送電子郵件。 請注意,發送電子郵件的代碼不應在生產應用的控制器中。 它應該在某種服務。 但是出于簡單原因,我們將其保留在此處。 ```php public function index(Request $request, \Swift_Mailer $mailer, LoggerInterface $logger) { ``` 我們注入`Request`,`Swift_Mailer`和記錄器。 ```php $name = $request->query->get('name'); ``` 我們獲取在 GET 請求中使用的名稱。 ```php $message = new \Swift_Message('Test email'); $message->setFrom('example@example.com'); $message->setTo('example2@example.com'); ``` 創建了`Swift_Message`。 `from`和`to`電子郵件值經過硬編碼,以簡化此示例。 您可以刪除硬編碼的值作為練習。 (將源電子郵件設置為參數,從表單中獲取目標電子郵件。) ```php $message->setBody( $this->renderView( 'emails/mymail.html.twig', ['name' => $name] ), 'text/html' ); ``` 使用`setBody()`,我們設置電子郵件的正文。 `renderView()`方法從提供的 Twig 模板渲染視圖。 我們將`$name`變量傳遞給模板。 ```php $mailer->send($message); ``` 電子郵件帶有`send()`發送。 ```php $logger->info('email sent'); $this->addFlash('notice', 'Email sent'); ``` 我們登錄&閃爍一條消息。 成功發送電子郵件后,將顯示即顯消息。 ```php return $this->redirectToRoute('home'); ``` 我們重定向到顯示 Flash 消息的主頁。 `templates/emails/myemail.html.twig` ```php Hi {{ name }}! You've got a test email. Thanks! ``` 這是電子郵件的簡單模板。 ```php $ php bin/console make:controller HomeController ``` 我們創建一個`HomeController`。 它包含一個用于發送電子郵件的簡單鏈接。 `src/Controller/HomeController.php` ```php <?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Routing\Annotation\Route; class HomeController extends AbstractController { /** * @Route("/", name="home") */ public function index() { return $this->render('home/index.html.twig'); } } ``` `HomeController`呈現主頁。 `templates/home/index.html` ```php {% extends 'base.html.twig' %} {% block title %}Home page{% endblock %} {% block stylesheets %} <style> .flash-notice { margin: 8px; padding-left: 8px; width: 150px; background-color: rgb(113, 241, 113) } .hide { opacity: 0; transition: opacity 1000ms; } </style> {% endblock %} {% block body %} <a href="/test/mail?name=Peter Novak">Send a test mail</a> {% for message in app.flashes('notice') %} <div id="flash-notice" class="flash-notice"> {{ message }} </div> {% endfor %} {% block javascripts %} <script src="main.js"></script> {% endblock %} {% endblock %} ``` 主頁包含用于發送電子郵件的鏈接。 如果發送了電子郵件,我們會顯示一條通知。 單擊此通知可以將其隱藏。 ```php <style> .flash-notice { margin: 8px; padding-left: 8px; width: 150px; background-color: rgb(113, 241, 113) } .hide { opacity: 0; transition: opacity 1000ms; } </style> ``` 我們為通知設置了一些樣式。 同樣,`hide`類提供了一個簡單的淡出動畫。 通過將此類插入通知元素,可以在 JavaScript 中啟動動畫。 ```php <a href="/test/mail?name=Peter Novak">Send a test mail</a> ``` 此鏈接發出觸發電子郵件的 GET 請求。 我們隨請求發送一個`name`屬性。 名稱是硬編碼的; 作為練習,您可以創建一個表單,該表單將指定名稱和目標電子郵件。 ```php {% for message in app.flashes('notice') %} <div id="flash-notice" class="flash-notice"> {{ message }} </div> {% endfor %} ``` 如果有即時消息,我們將其顯示。 ```php <script src="main.js"></script> ``` 動畫由位于`main.js`文件中的 JavaScript 代碼控制。 `public/main.js` ```php const flash = document.getElementById('flash-notice'); flash.addEventListener('click', function () { flash.classList.add('hide'); }); ``` 當我們單擊 Flash 消息時,事件回調將`hide`類添加到元素的類列表中,從而啟動淡出動畫。 `templates/base.html.twig` ```php <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{% block title %}Welcome!{% endblock %}</title> {% block stylesheets %} {% endblock %} </head> <body> {% block body %}{% endblock %} {% block javascripts %}{% endblock %} </body> </html> ``` 這是基本的 Twig 模板。 在本教程中,我們展示了如何在 Symfony 中發送簡單的電子郵件。 您可能也對以下相關教程感興趣: [Symfony 簡介](/symfony/intro/), [Symfony 服務教程](/symfony/service/), [Symfony 請求教程](/symfony/request/), [Symfony Flash 消息](/symfony/flash/) , [Symfony 表單教程](/symfony/form/), [PHP 教程](/lang/php/)。 請參閱 Mailtrap 的[如何在 Symfony 中發送電子郵件的示例](https://blog.mailtrap.io/send-emails-in-symfony/)。 {% endraw %}
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看