How to Send Emails in PHP?
A detailed guide on PHP mail sending options with examples of using the built-in mail function(), PHPMailer, Pear mail, and Swift Mailer.
A detailed guide on PHP mail sending options with examples of using the built-in mail function(), PHPMailer, Pear mail, and Swift Mailer.
To learn about Jakarta Mail basics, sending messages via an SMTP server and more options to consider head to the original tutorial about how to send email with attachement in Java on Mailtrap Blog.
To send an HTML email, you should perform the same steps as for sending a simple text message, with only SendHTMLEmail class instead of just SendEmail. Also, you need to set content to the MimeMessage.setContent(Object, String) and indicate text/html type.
To add an image to your HTML email in Jakarta Mail, you can choose any of three regular methods: CID, base64 image, or linked image.
To embed a CID image, you need to create a MIME multipart/related message:
I know, I know. You are sighing again and wondering what all the fuss and hype is about Web 3. Canât these people just rest? Every 3 market days, web 3 people are always hammering into our ears that web 3 is the future and how we need to get involved. They are always trying to create solutions to problems that arenât there.
Hold up! Slow your tempo, and go on this journey with me as I explain how important web 3 is and why we should all start adopting it. I promise youâd fall in love with web 3, just like I did.
However, it would be highly inadequate if we donât talk about the evolution of the web itself. Aye, passenger strap in and fly with me. I will try not to bore you with jargon or too much data.

Amazon DocumentDB is a managed proprietary NoSQL database service that supports document data structures and has limited support for MongoDB workloads, with some compatibility with MongoDB version 3.6 (released by MongoDB in 2017) and version 4.0 (released by MongoDB in 2018). As a document database..

Merge seems to be a very simple topic, but it on first glance. Weâll learn whatâs difference between ^ and ~ in GIT and uncover the full potential of the GIT log. This article continuous series of âAdvanced GITâ. Weâve already talked about References, Git code store areas and whatâs git. Letâs continue our journey đ.

A reflection on token-backed vs. traditional VC financing
In the last years, token-financed projects became popular due to the lack of regulations and crowd appetite to become early participants. Token-based investments are usually based on an open source project that aims for early user participation and lures investors with a token of their own. The value is to be shared among users and not among large shareholders and venture capitalists (VC), as has been the case in the past. But, unfortunately, this format comes with a trade-off that has not been stressed enough in the past. So read on. â Authors: Raphael Hagemann, Enrique Munoz de Cote

Last time we talked about installing OpenDistro on Kubernetes using self-signed certificates, this can be a repetitive and boring task to do each time. Instead we can delegate the creation of certificates to a tool like cert-manager.
If you didnât read the first part of this article you can find it here
I was given a task in my project to set up a CI-CD pipeline on GCP using helm to package k8s objects and deploy them on the GKE cluster. Having very little exposure to DevOps, I did my hands dirty and learned about helm which I am going to share in this blog. What will I do? I am going to show an end to end creation of spring boot application to deploy it as a helm chart on a minikube cluster.
Agenda:
1. Create an spring boot app
2. Create docker image
3. Creating k8s objects
4. Create helm chart
5. Deploy them to minikube cluster
Although we donât need to create k8s objects,but it will make sense while learning helm. I am assuming that reader has a basic understanding of docker. If not please read below blog.

Itâs been almost two years since we released KYPO cyber range platformš as Open-source project. KYPO consists of 10 microservices and up to 8 supporting services making deployment and configuration a complex task. Weâve released two projects to make it simpler:
kypo-crp-openstack-base² â set of shell scripts and heat templates for OpenStack cloud resources allocation
kypo-crp-deploymentÂł âAnsible playbooks and roles for application provisioning
We soon realized that orchestration with Heat and shell scripts is not flexible enough, so weâve replaced it internally with Terraform.

Before we start this conversation, we assume you have knowledge on Kubernetes, Istio, Prometheus, Kiali, Jaeger and Grafana.
If you don't, you can check the official documentation by accessing the following links:
- https://kubernetes.io
- https://istio.io
- https://prometheus.io
- https://kiali.io
- https://www.jaegertracing.io
- https://grafana.com
By following this article, we are going to achieve such things:
- Install Istio (using revisions) to a Kubernetes Cluster
- Install Prometheus as an Istio addon so we can retrieve some service mesh custom metrics
- Install Kiali as an Istio addon so we can visualize our service mesh traffic and, if needed, manage and customize our traffic
- Install Jaeger as an Istio addon so we can monitor and inspect all our requests using tracing
- Install Grafana as an Istio addon so we can monitor everything that is going on through dashboards and charts
- Be able to perform Rolling Upgrades on Istio
