ver. 1.0
Dependencies: EPOS2 NetServices mbed
Fork of SMTPClient_HelloWorld by
main.cpp@0:10508306e920, 2010-11-28 (annotated)
- Committer:
- segundo
- Date:
- Sun Nov 28 00:43:18 2010 +0000
- Revision:
- 0:10508306e920
- Child:
- 1:808150b7aebc
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
segundo | 0:10508306e920 | 1 | #include "mbed.h" |
segundo | 0:10508306e920 | 2 | #include "EthernetNetIf.h" |
segundo | 0:10508306e920 | 3 | #include "NTPClient.h" |
segundo | 0:10508306e920 | 4 | #include "SMTPClient.h" |
segundo | 0:10508306e920 | 5 | |
segundo | 0:10508306e920 | 6 | #define HOSTNAME "mbedSE" |
segundo | 0:10508306e920 | 7 | |
segundo | 0:10508306e920 | 8 | // server is domain name eg. mail.authsmtp.com |
segundo | 0:10508306e920 | 9 | // port is smtp port eg. 25 or 23 |
segundo | 0:10508306e920 | 10 | // domain must be acceptable to server (but often is not strictly enforced since does not affect FROM address) |
segundo | 0:10508306e920 | 11 | #define SERVER "server" |
segundo | 0:10508306e920 | 12 | #define PORT 25 |
segundo | 0:10508306e920 | 13 | #define USER "username" |
segundo | 0:10508306e920 | 14 | #define PASSWORD "password" |
segundo | 0:10508306e920 | 15 | #define DOMAIN "mailnull.com" |
segundo | 0:10508306e920 | 16 | #define FROM_ADDRESS "segundo.smtpclient@mailnull.com" |
segundo | 0:10508306e920 | 17 | #define TO_ADDRESS "segundo.smtpclient@mailnull.com" |
segundo | 0:10508306e920 | 18 | |
segundo | 0:10508306e920 | 19 | EthernetNetIf eth(HOSTNAME); |
segundo | 0:10508306e920 | 20 | DigitalOut led1(LED1, "led1"); |
segundo | 0:10508306e920 | 21 | |
segundo | 0:10508306e920 | 22 | int main() { |
segundo | 0:10508306e920 | 23 | |
segundo | 0:10508306e920 | 24 | printf("\n\n/* Segundo Equipo SMTPClient library demonstration */\n"); |
segundo | 0:10508306e920 | 25 | printf("Make sure you have modified the SERVER, PORT etc in the source code\n"); |
segundo | 0:10508306e920 | 26 | |
segundo | 0:10508306e920 | 27 | EthernetErr ethErr; |
segundo | 0:10508306e920 | 28 | int count = 0; |
segundo | 0:10508306e920 | 29 | do { |
segundo | 0:10508306e920 | 30 | printf("Setting up %d...\n", ++count); |
segundo | 0:10508306e920 | 31 | ethErr = eth.setup(); |
segundo | 0:10508306e920 | 32 | if (ethErr) printf("Timeout\n", ethErr); |
segundo | 0:10508306e920 | 33 | } while (ethErr != ETH_OK); |
segundo | 0:10508306e920 | 34 | |
segundo | 0:10508306e920 | 35 | printf("Connected OK\n"); |
segundo | 0:10508306e920 | 36 | const char* hwAddr = eth.getHwAddr(); |
segundo | 0:10508306e920 | 37 | printf("HW address : %02x:%02x:%02x:%02x:%02x:%02x\n", |
segundo | 0:10508306e920 | 38 | hwAddr[0], hwAddr[1], hwAddr[2], |
segundo | 0:10508306e920 | 39 | hwAddr[3], hwAddr[4], hwAddr[5]); |
segundo | 0:10508306e920 | 40 | |
segundo | 0:10508306e920 | 41 | IpAddr ethIp = eth.getIp(); |
segundo | 0:10508306e920 | 42 | printf("IP address : %d.%d.%d.%d\n", ethIp[0], ethIp[1], ethIp[2], ethIp[3]); |
segundo | 0:10508306e920 | 43 | |
segundo | 0:10508306e920 | 44 | NTPClient ntp; |
segundo | 0:10508306e920 | 45 | printf("NTP setTime...\n"); |
segundo | 0:10508306e920 | 46 | Host server(IpAddr(), 123, "pool.ntp.org"); |
segundo | 0:10508306e920 | 47 | printf("Result : %d\n", ntp.setTime(server)); |
segundo | 0:10508306e920 | 48 | |
segundo | 0:10508306e920 | 49 | time_t ctTime = time(NULL); |
segundo | 0:10508306e920 | 50 | printf("\nTime is now (UTC): %d %s\n", ctTime, ctime(&ctTime)); |
segundo | 0:10508306e920 | 51 | |
segundo | 0:10508306e920 | 52 | Host host(IpAddr(), PORT, SERVER); |
segundo | 0:10508306e920 | 53 | SMTPClient smtp(host, DOMAIN, USER, PASSWORD, SMTP_AUTH_PLAIN); |
segundo | 0:10508306e920 | 54 | |
segundo | 0:10508306e920 | 55 | EmailMessage msg; |
segundo | 0:10508306e920 | 56 | msg.setFrom(FROM_ADDRESS); |
segundo | 0:10508306e920 | 57 | msg.addTo(TO_ADDRESS); |
segundo | 0:10508306e920 | 58 | msg.printf("Subject: mbed SMTPClient test at %s", ctime(&ctTime)); |
segundo | 0:10508306e920 | 59 | msg.printf("1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\n"); |
segundo | 0:10508306e920 | 60 | msg.printf(".\r\n"); |
segundo | 0:10508306e920 | 61 | msg.printf("1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\n"); |
segundo | 0:10508306e920 | 62 | |
segundo | 0:10508306e920 | 63 | printf("Send result %d\n", smtp.send(&msg)); |
segundo | 0:10508306e920 | 64 | printf("Last response | %s", smtp.getLastResponse().c_str()); |
segundo | 0:10508306e920 | 65 | |
segundo | 0:10508306e920 | 66 | Timer tm; |
segundo | 0:10508306e920 | 67 | tm.start(); |
segundo | 0:10508306e920 | 68 | |
segundo | 0:10508306e920 | 69 | while (true) { |
segundo | 0:10508306e920 | 70 | if (tm.read() > 0.5) { |
segundo | 0:10508306e920 | 71 | led1 = !led1; |
segundo | 0:10508306e920 | 72 | tm.start(); |
segundo | 0:10508306e920 | 73 | } |
segundo | 0:10508306e920 | 74 | } |
segundo | 0:10508306e920 | 75 | } |