...
Code Block | ||
---|---|---|
| ||
#include <Source/smtp-c.h> #define SERVER_DOMAIN_NAME "smtp.foo.bar" /*See note #1*/ #define MAILBOX_FROM_NAME "John Doe" /*See note #2*/ #define MAILBOX_FROM_ADDR "john.doe@foo.bar" #define MAILBOX_TO_NAME "Jane Doe" #define MAILBOX_TO_ADDR "jane.doe@foo.bar" #define USERNAME "john.doe" /*See note #3*/ #define PASSWORD "123" #define MSG_SUBJECT "Test" #define MSG "This is a test message" CPU_BOOLEAN AppMailSend (void) { CPU_CHAR *p_server_addr; SMTPc_MBOX from_mbox; SMTPc_MBOX to_mbox; SMTPc_MSG mail; SMTPc_ERR err; CPU_INT16U port; NET_APP_SOCK_SECURE_CFG *p_secure_cfg; p_server_addr = SERVER_DOMAIN_NAME; /* ------------- INITIALIZE THE MAIL OBJ -------------- */ /* Set the email object mailbox and content to Null. */ /* All fields set to Null will be ignore in the email...*/ /* ...transmission. */ SMTPc_SetMsg (&mail, &err); /*See note #4*/ if (err != SMTPc_ERR_NONE) { return (DEF_FAIL); } /* ---------------- SET MAIL ENVELOP ------------------ */ /* Set all the mailbox which the email is related to. */ /* SMTPc_MSG need at least the TO and FROM mailbox... */ /* ...in order to be sent properly. */ /*See note #5*/ mail.From = &from_mbox; /* Set the FROM mailbox of the e-mail. */ SMTPc_SetMbox(mail.From, MAILBOX_FROM_NAME, MAILBOX_FROM_ADDR, &err); if (err != SMTPc_ERR_NONE) { return (DEF_FAIL); } mail.ToArray[0] = &to_mbox; /* Set the TO mailbox of the e-mail. */ SMTPc_SetMbox(mail.ToArray[0], MAILBOX_TO_NAME, MAILBOX_TO_ADDR, &err); if (err != SMTPc_ERR_NONE) { return (DEF_FAIL); } /* ----------------- SET MAIL CONTENT ----------------- */ /* Set the message subject and body. */ mail.Subject = MSG_SUBJECT; mail.ContentBodyMsg = MSG; mail.ContentBodyMsgLen = sizeof(MSG); /* ---------------- SET CONN SECURITY ----------------- */ /*See note #6*/ port = SMTPc_CFG_IPPORT; p_secure_cfg = DEF_NULL; /* -------------------- SEND MAIL --------------------- */ SMTPc_SendMail( p_server_addr, /*See note #7*/ port, USERNAME, PASSWORD, p_secure_cfg, &mail, &err); if (err != SMTPc_ERR_NONE) { return (DEF_FAIL); } return (DEF_OK); } |
- The SMTP server can represented as an IPv4/IPv6 adress or a domain name. If a domain name is used, enable and initialize µC/DNSc properly.
- Mailbox represent the address and name of a sender (FROM) or recipient (TO,CC and BCC). Multiple recipient can be set for an email.
- µC/SMTPc allow the user to authenticate to a SMTPc server with credential if needed.
SMTPc_SetMsg() function must be called to initialized the SMTPc_MSG object
In order to set a mailbox in the email, SMTPc_MBOX instance must be passed to the SMTPc_MSG object.
- The connection to the SMTP server can be either secure or not. In this example, the connection is non-secure and use the legacy port 25. If a secure connection is required, p_secure_cfg must be configured. For more information, refer to the SSL Documentation.
- SMTP_SendMail() function will process each step to send the email. It will connect to SMTP the server, prepare and send the email and disconnect from the SMTP server.