ver. 1.0

Dependencies:   EPOS2 NetServices mbed

Fork of SMTPClient_HelloWorld by Segundo Equipo

Committer:
segundo
Date:
Sun Nov 28 00:43:18 2010 +0000
Revision:
0:10508306e920
Child:
1:808150b7aebc

        

Who changed what in which revision?

UserRevisionLine numberNew 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 }