
When developing a Symfony application, you often need to inspect the emails your application generates without actually sending them. While tools like Mailpit or Mailtrap are excellent choices, sometimes you want something even simpler: write every email to disk as a standard .eml file.
This approach is particularly useful for:
In this article, we'll build a custom Symfony Mailer transport that stores every outgoing email as an RFC 822 compatible .eml file.
Caching plays a critical role in the performance and scalability of websites. One of the most important tools for controlling caching behaviour is the Cache-Control HTTP header. This header defines how responses are cached by browsers, reverse proxies, and CDNs, and how long they remain valid.
In complex websites, different page types often require different caching strategies. For example, on a news website, an article page may be cached for a few hours to a day, while the homepage — where content changes frequently — may only be cached for a few minutes.
Content management systems, including the Ibexa DXP, typically create a Content Name for each content item stored in the database. Content Names are automatically generated from attributes required for a content type, and so do not necessarily match other content attributes, such as Title, that users can edit directly.
When working with Symfony applications, the routing component is key to mapping your website URLs to custom PHP code in controllers. In this post, we explain how to define URL routes and how to use match conditions.