Sending emails, especially those with attachments and inline images, can be a cumbersome task. However, the Xedge IDE simplifies this process through its user-friendly configuration dialog. This tutorial will guide you through setting up and using the Xedge SMTP configuration to enhance your email sending capabilities securely.
The Xedge IDE offers an easy-to-use configuration dialog for sending emails, including those with attachments and inline images. While you can send emails without this built-in feature, leveraging the Xedge SMTP configuration provides a significant advantage: it encrypts your email settings and credentials within the "xedge.conf" file for enhanced security when used on platforms such as Xedge32.
-----
Before we delve into the topic, we invite you to support our ongoing efforts and explore our various platforms dedicated to enhancing your IoT projects:
- Subscribe to our YouTube Channel: Stay updated with our latest tutorials and project insights by subscribing to our channel at YouTube - Shilleh.
- Support Us: Your support is invaluable. Consider buying me a coffee at Buy Me A Coffee to help us continue creating quality content.
- Hire Expert IoT Services: For personalized assistance with your IoT projects, hire me on UpWork.
Explore our Stores for Premium Products:
- ShillehTek Store: Access exclusive discounts on Arduino, Raspberry Pi sensors, and pre-soldered components at our ShillehTek Website.
Shop on Amazon:
Step 1: Accessing the SMTP Configuration- Open the Xedge IDE.
- Click the three dots in the upper right to reveal the menu.
- Select "SMTP Server" to launch the configuration dialog.
Here’s what the SMTP configuration dialog looks like:
Xedge SMTP Configuration
This dialog also activates the optional built-in email log function, xedge.elog()
, which is useful for sending log messages, such as detailed stack traces and error messages, if your Lua scripts encounter issues.
After accessing the SMTP configuration dialog, enter your SMTP settings. Here's a breakdown of the settings for popular email providers:
SMTP Settings for Hotmail and Outlook- SMTP Server: smtp.office365.com
- SMTP Username: Your complete Outlook email address
- SMTP Password: Your Outlook account password
- SMTP Port: 587
- Connection Security: STARTTLS
- SMTP Server: smtp.gmail.com
- SMTP Username: Your full Gmail address
- SMTP Password: Your Gmail App Password (details below)
- SMTP Port: 465
- Connection Security: TLS
Gmail users need an App Password instead of their regular account password for SMTP settings. Follow these steps to generate an App Password:
- Access your Google Account and navigate to the 'Security' section.
- Under 'Signing in to Google, ' select '2-Step Verification' and proceed with the setup if not already activated.
- Once 2-Step Verification is enabled, return to the 'Security' page and select 'App Passwords.'
- In the 'Select app' dropdown, choose 'Mail.' For 'Select device, ' pick 'Other' and label it as 'Xedge.'
- Click 'Generate' to receive a 16-digit App Password.
Use this App Password as the authentication method for Xedge to send emails through your Gmail account.
Step 3: Testing the Email FunctionsWith your SMTP settings configured, test the email functions by sending a few emails. Follow these steps:
- Click the three dots in the upper right to reveal the menu.
- Select "Lua Shell" to launch the REPL.
Copy and paste the following code into the REPL, changing the "to" address:
local op={
to="info@realtimelogic.com",
subject="Hello",
body="What's up?"
}
xedge.sendmail(op, function(ok,err) trace(ok,err) end)
Example 2: Sending an HTML Email with an Inlined Imagelocal image=[[
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400">
<circle cx="100" cy="100" r="50" stroke="black" stroke-width="5" fill="red"/>
</svg>
]]
local op={
to="info@realtimelogic.com",
subject="A Circle",
htmlbody=[[
<html>
<body>
<h1>SVG</h1>
<img src="cid:the-unique-id" alt="circle">
</body>
</html>
]],
htmlimg={
id="the-unique-id",
name="circle.svg",
source=image
}
}
xedge.sendmail(op, function(ok,err) trace(ok,err) end)
ConclusionCongratulations! You have successfully configured your SMTP settings and tested email functions using Xedge IDE. For more details on using the xedge.sendmail()
function, refer to the Xedge Documentation.
Additionally, if you need to log messages via email, check out the tutorial: Logging for Testing and Production Mode: Maximizing Efficiency with Xedge.
For further assistance, explore our extensive collection of embedded web server and IoT tutorials tailored to guide you through each step. If you're pressed for time or need expert guidance, consider our consulting services to manage the complexities of networking, security, and device management.
Happy emailing with Xedge!
Comments
Please log in or sign up to comment.