--- title: SMTP description: Instructions on how to add e-mail notifications to Home Assistant. ha_category: - Notifications ha_iot_class: Cloud Push ha_release: pre 0.7 ha_domain: smtp ha_platforms: - notify ha_integration_type: integration --- The SMTP platform allows you to deliver notifications from Home Assistant to an e-mail recipient. To enable notification by e-mail in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry notify: - name: "NOTIFIER_NAME" platform: smtp sender: "YOUR_SENDER" recipient: "YOUR_RECIPIENT" ``` Check your e-mail provider configuration or help pages to get the correct SMTP settings. {% configuration %} name: description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. required: false type: string default: notify sender: description: E-mail address of the sender. required: true type: string recipient: description: Default E-mail address of the recipient of the notification. This can be a recipient address or a list of addresses for multiple recipients.
This is where you want to send your E-mail notifications by default (when not specifying `target` in the service call). Any E-mail address(es) specified in the service call's `target` field will override this recipient content. required: true type: [list, string] server: description: SMTP server which is used to send the notifications. required: false type: string default: localhost port: description: The port that the SMTP server is using. required: false type: integer default: 587 timeout: description: The timeout in seconds that the SMTP server is using. required: false type: integer default: 5 username: description: Username for the SMTP account. required: false type: string password: description: Password for the SMTP server that belongs to the given username. Make sure to wrap it in double quotes; e.g., `"MY_PASSWORD"`. required: false type: string encryption: description: Set mode for encryption, `starttls`, `tls` or `none`. required: false type: string default: starttls sender_name: description: "Sets a custom 'sender name' in the emails headers (*From*: Custom name )." required: false type: string debug: description: Enables Debug, e.g., `true` or `false`. required: false type: boolean default: false verify_ssl: description: If the SSL certificate of the server needs to be verified. required: false type: boolean default: true {% endconfiguration %} ### Usage To use the SMTP notification, refer to it in an automation or script like in this example: ```yaml burglar: alias: "Burglar Alarm" sequence: - service: shell_command.snapshot - delay: seconds: 1 - service: notify.NOTIFIER_NAME data: title: "Intruder alert" message: "Intruder alert at apartment!!" target: - "my_intruder_alert@example.com" data: images: - /home/pi/snapshot1.jpg - /home/pi/snapshot2.jpg ``` The optional `target` field is used to specify recipient(s) for this specific service call. When `target` field is not used, this message will be sent to default recipient(s), in this example, my_intruder_alert@example.com. The optional `html` field makes a custom text/HTML multi-part message, allowing total freedom for sending rich HTML emails by defining the HTML content. In them, if you need to include images, you can pass both arguments (`html` and `images`). The images will be attached with the basename of the images, so they can be included in the html page with `src="cid:image_name.ext"`. The optional `images` field adds image attachments to the email. If `html` is defined, the images need to be added to the message in-line as described above (and as shown in the example below). If `html` is not defined, images will be added as separate attachments.
When adding images, make sure the folders containing the attachments are added to `allowlist_external_dirs`.
See: [Setup basic documentation](/docs/configuration/basic/)
```yaml burglar: alias: "Burglar Alarm" sequence: - service: shell_command.snapshot - delay: seconds: 1 - service: notify.NOTIFIER_NAME data: message: "Intruder alert at apartment!!" data: images: - /home/pi/snapshot1.jpg - /home/pi/snapshot2.jpg html: > Intruder alert

Intruder alert at apartment!!

snapshot1
snapshot2

``` To learn more about how to use notifications in your automations, please see the [getting started with automation page](/getting-started/automation/). ## Specific E-Mail Provider Configuration Check below some configurations examples for specific e-mail providers. If you are in doubt about the SMTP settings required, check your e-mail provider configuration or help pages for more information about its specific SMTP configuration. ### Google Mail A sample configuration entry for Google Mail. ```yaml # Example configuration.yaml entry for Google Mail. notify: - name: "NOTIFIER_NAME" platform: smtp server: "smtp.gmail.com" port: 587 timeout: 15 sender: "YOUR_USERNAME@gmail.com" encryption: starttls username: "YOUR_USERNAME@gmail.com" password: "YOUR_APP_PASSWORD" recipient: - "RECIPIENT_1@example.com" - "RECIPIENT_N@example.com" sender_name: "SENDER_NAME" ``` Google has some extra layers of protection that need special attention. You must use [an application-specific password](https://support.google.com/mail/answer/185833) in your notification configuration. If any of the following conditions are met you will not be able to create an app password: - You do not have 2-step verification enabled on your account. - You have 2-step verification enabled but have only added a security key as an authentication mechanism. - Your Google account is enrolled in Google's [Advanced Protection Program](https://landing.google.com/advancedprotection/). - Your Google account belongs to a Google Workspace that has disabled this feature. Accounts owned by a school, business, or other organization are examples of Google Workspace accounts.