Are you looking to incorporate email functionality into your Python program? The mailto function allows you to automatically open the default email client on your computer and pre-fill certain fields like the recipient email address, subject, and body text. In this guide, we will walk you through how to use mailto in Python to streamline your email communication process.

What is Mailto?

Mailto is a Uniform Resource Identifier (URI) scheme that opens the default email client on your computer when a link is clicked or when it is triggered programmatically. This feature is widely used in web applications to enable users to send emails without revealing the recipient’s email address or the email’s content.

Sending Basic Emails with Mailto

To send a basic email using mailto in Python, you simply need to construct a mailto link with the recipient’s email address, subject, and body text. Here’s an example:

import webbrowser

recipient = “[email protected]
subject = “Hello from Python”
body = “This is a test email sent using Python.”

mailto_link = f”mailto:{recipient}?subject={subject}&body={body}”

When you run this code, it will open your default email client with the recipient’s email address, subject, and body text pre-filled. The user can then review the email and click “Send” to send the email.

Adding CC, BCC, and Attachments

You can also include CC (Carbon Copy), BCC (Blind Carbon Copy), and attachments in your mailto link. Here’s how you can do it:

import webbrowser
import urllib.parse

recipient = “[email protected]
cc = “[email protected]
bcc = “[email protected]
subject = “Email with CC and BCC”
body = “This email includes CC and BCC recipients.”

cc_bcc_param = f”cc={cc}&bcc={bcc}”
mailto_link = f”mailto:{recipient}?{cc_bcc_param}&subject={subject}&body={body}”

Encode the mailto link

encoded_mailto_link = urllib.parse.quote(mailto_link, safe=’?=&’)


Q: Can I use mailto to send emails without an email client?

A: No, mailto relies on the default email client installed on your computer to send emails.

Q: Is mailto secure for sending sensitive information?

A: Mailto is not recommended for sending sensitive information as the email content is visible in the browser’s address bar.

Q: Can I include line breaks in the body of the email?

A: Yes, you can use %0D%0A to add line breaks in the body text of the email.

Q: How do I add multiple recipients in the mailto link?

A: You can separate multiple email addresses with commas in the recipient field.

Q: Can I style the email content using HTML in mailto links?

A: Mailto links do not support HTML formatting for email content.


In this comprehensive guide, we have explored how to use the mailto function in Python to simplify the process of sending emails programmatically. By leveraging mailto links, you can enhance the user experience and streamline communication in your Python applications. Experiment with different parameters and customize your mailto links to suit your specific email requirements. Happy coding!


Please enter your comment!
Please enter your name here