Home › Forums › The libraries hosted on the site › EMailSender send email with attachments › SMTP server to use with the EMailSender library › EMailSender and SendGrid
Tagged: Mail Arduino W5100
- This topic has 7 replies, 3 voices, and was last updated 1 year, 1 month ago by
Jules.
-
AuthorPosts
-
-
17 March 2024 at 19:12 #30104
To send an e-mail with EMAilSender, you can work with SendGrid. (https://sendgrid.com/en-us)
– create an account (free up to 100 mails per day).
install an application on the mobile phone for 2-level authentication
– create a SMTP Relay API key (full access)
copy the key and all your account information.at the beginning of the code, don’t forget to enter :
—————————————————
#include <Arduino.h>
#include <SPI.h>
#include <Ethernet.h>
#include <EMailSender.h>
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100 //If you’re using a schield W5100.
byte mac[6] = { 0x** 0x**, 0x**, 0x**, 0x**, 0x** }; // Your Adress Mac
IPAddress ip(192, 168, *, ***); // Your Address IPEMailSender emailSend(“apikey”, “your_password_apikey”, “your_mail”, “smtp.sendgrid.net”, 587 );
// apikey signals that we’re going to send a code related to an api module
// your_password_apikey is the password given by Sendgrid when requesting an SMTP Relay key.
// your_mail is the Sendgrid login address.
// You must use 587 as portvoid setup()
{
// Open serial communications and wait for port to open:
Serial.begin(115200);
// while (!Serial) {}
delay(2000);Serial.println(“Port série ok”);
// start the Ethernet connection:
pinMode(4, OUTPUT); // config for shield W5100 on MEGA2560
digitalWrite(4, HIGH); // config for shield W5100 on MEGA2560
if (Ethernet.begin(mac) == 0) {
Serial.println(“Failed to configure Ethernet using DHCP”);
while(1);
}
Serial.print(“Addresse IP “);
Serial.println(Ethernet.localIP());EMailSender::EMailMessage message;
message.subject = “Test”;
message.message = “This indicates a reboot of the arduino”;
EMailSender::Response resp = emailSend.send(“address@****.***”, message);
Serial.print(“Status: “);
Serial.println(resp.desc);void loop()
{
if(Serial.read() == ‘S’) {
if(sendEmail_1()); // to send the mail
}
}byte sendEmail_1() {
EMailSender::EMailMessage message;
message.subject = “Your mail title”;
message.message = “Your information message”;
EMailSender::Response resp = emailSend.send(“address@****.***”, message);
Serial.print(“status: “);
Serial.println(resp.desc);
}
——————————————————————
Just incorporate this sketch into your own and have fun!I had to search a lot of forums to find a simple way to send email alerts from my Arduino system. (I have information coming from my heater, a pump, etc …).
The EMailSender and SendGrid combination is the simplest. -
17 March 2024 at 19:54 #30105
Thanks Jules,
Your info will be precious for a lie of people.
Bye Renzo -
5 April 2024 at 14:08 #30257
Hey I tried your Code but could you tell me more detailed how did you set up the SendGrid because i think i have everything good exept that.
thanks
-
5 April 2024 at 16:54 #30259
You need to create a SendGrid account and take the free option.
You will need a confirmation app on your mobile phone.
then create an api (relay).
Save your codes, they won’t be visible after they’ve been created.
that should do it.
see : https://sendgrid.com/en-us/blog/smtp-relay-service-basics-
This reply was modified 1 year, 1 month ago by
Jules.
-
15 April 2024 at 08:49 #30306
Hello,
Could we go on a Call about this. I dont quite understand the part of the confirmation app on the phone.
Bye
-
This reply was modified 1 year, 1 month ago by
-
15 April 2024 at 09:40 #30307
it’s a simple 2-level confirmation …
(mail + password) and mobile number
Sorry, but I don’t think we can call each other. I live in Belgium and I don’t understand enough English to hold a conversation. Writing is one thing, but conversation is another… -
15 April 2024 at 09:48 #30308
So Actually i did everything as told and my code is the same as yours i did 2FA on the sendgrid and i confirmed my mobile number too.
– I also did a Sender Authentication From where to where it needs to go // is this necessecary?
– I used the SMPT Relay where i made an api key and i used it for the apikey and apikey passowrd // is this correct?
– When i send a mail through arduino the Intnernet is working because i can see that it makes TCP connection to Sendgrid servers.
– Im sending from an Outlook Email to a Gmail Email and i dont know if that is right.-do you need to pay sendgrid at anypoint because i want to use it for my self and send some email time to time ?
Hee i will put my Code (i want it to keep it very simple) maybe you can see any mistakes 🙂
#include <Ethernet.h> //#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100 #include <Arduino.h> #include <SPI.h> #include <EMailSender.h> // Enter a MAC address for your controller below. // Newer Ethernet shields have a MAC address printed on a sticker on the shield byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; EMailSender emailSend("apikey", "apikey-psw", "<my sendgrid email>", "smtp.sendgrid.net", 587); void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); // while (!Serial) {} Serial.println("Starting!"); // start the Ethernet connection: if (Ethernet.begin(mac) == 0) { Serial.println("Failed to configure Ethernet using DHCP"); while(1); } Serial.print("IP address "); Serial.println(Ethernet.localIP()); EMailSender::EMailMessage message; message.subject = "This is a Test"; message.message = "Its a Test"; EMailSender::Response resp = emailSend.send("the email i want the maessage to go", message); Serial.println("Sending status: "); Serial.println(resp.status); Serial.println(resp.code); Serial.println(resp.desc); } void loop() { Serial.begin(9600); Serial.println("Starting!"); }
Thank you because im trying for a Week to get this working 🙂
-
This reply was modified 1 year, 1 month ago by
erjon.
-
This reply was modified 1 year, 1 month ago by
-
15 April 2024 at 17:59 #30319
//#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100 <== deleting the // , the line must be made active
EMailSender emailSend(“apikey”, “apikey-psw”, “<my sendgrid email>”, “smtp.sendgrid.net”, 587);
// apikey remains apikey
// apikey-psw is the key given by SendGrid (64 characters)
// snedgridmail ==> do not put the < >// ERROR : EMailSender::Response resp = emailSend.send(“the email i want the maessage to go”, message);
ok => EMailSender::Response resp = emailSend.send(“recipient@mail.***”, message);make these changes and it should work
SendGrid is normally free for non-intensive personal use
since you didn’t put a destination address, it couldn’t go … “recipient@mail.***”
-
-
AuthorPosts
- You must be logged in to reply to this topic.