EthernetInterface Libraryを使ったSimpleな SMTP ClientLibraryです. LOGIN認証を追加しました.(2014.4 Update) It is SMTPClient Library which is Simple using EthernetInterface Library.

Dependents:   SimpleSMTPClient_HelloWorld USBHost-MSD_Sensors_1 IOT-GPS-SMS IOT_HW_5_websockets ... more

Committer:
sunifu
Date:
Tue Dec 04 09:55:36 2012 +0000
Revision:
1:58550f022776
Parent:
0:3ea21ce21fe1
Child:
2:27053679f44b
Ver1.01  add Function < clearMessage( ) >

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sunifu 0:3ea21ce21fe1 1 /*
sunifu 0:3ea21ce21fe1 2 *
sunifu 0:3ea21ce21fe1 3 * mbed Simple SMTP Client
sunifu 0:3ea21ce21fe1 4 * Copyright (c) 2012 Tadao Iida
sunifu 0:3ea21ce21fe1 5 * Released under the MIT License: http://mbed.org/license/mit
sunifu 0:3ea21ce21fe1 6 */
sunifu 0:3ea21ce21fe1 7
sunifu 0:3ea21ce21fe1 8 /** @file
sunifu 0:3ea21ce21fe1 9 * @brief Simple SMTP Client
sunifu 0:3ea21ce21fe1 10 */
sunifu 0:3ea21ce21fe1 11
sunifu 0:3ea21ce21fe1 12 #ifndef SimpleSMTPC_h
sunifu 0:3ea21ce21fe1 13 #define SimpleSMTPC_h
sunifu 0:3ea21ce21fe1 14
sunifu 0:3ea21ce21fe1 15 #include "EthernetInterface.h"
sunifu 0:3ea21ce21fe1 16
sunifu 0:3ea21ce21fe1 17 ///SMTP authentication
sunifu 0:3ea21ce21fe1 18 enum SMTPAuth {
sunifu 0:3ea21ce21fe1 19 SMTP_AUTH_NONE, ///<No authentication
sunifu 0:3ea21ce21fe1 20 SMTP_AUTH_PLAIN ///<AUTH PLAIN authentication
sunifu 0:3ea21ce21fe1 21 };
sunifu 0:3ea21ce21fe1 22
sunifu 0:3ea21ce21fe1 23 ///SimpleSMTP client results
sunifu 0:3ea21ce21fe1 24 enum SMTPResult
sunifu 0:3ea21ce21fe1 25 {
sunifu 0:3ea21ce21fe1 26 SMTP_AUTH_OK = 235, ///<Authentication successful
sunifu 0:3ea21ce21fe1 27 SMTP_OK = 250, ///<Requested mail action okay, completed
sunifu 0:3ea21ce21fe1 28 SMTP_INPUT = 354 ///<Start mail input
sunifu 0:3ea21ce21fe1 29 };
sunifu 0:3ea21ce21fe1 30 #define DEBUG
sunifu 0:3ea21ce21fe1 31
sunifu 0:3ea21ce21fe1 32 #define SMTP_TIMEOUT 15000 // ms
sunifu 0:3ea21ce21fe1 33
sunifu 0:3ea21ce21fe1 34 class SimpleSMTPClient
sunifu 0:3ea21ce21fe1 35 {
sunifu 0:3ea21ce21fe1 36 public:
sunifu 0:3ea21ce21fe1 37 /**
sunifu 0:3ea21ce21fe1 38 Instantiate the SimpleSMTP client
sunifu 0:3ea21ce21fe1 39 */
sunifu 0:3ea21ce21fe1 40 SimpleSMTPClient();
sunifu 0:3ea21ce21fe1 41
sunifu 0:3ea21ce21fe1 42 /** send mail
sunifu 0:3ea21ce21fe1 43 * @param host mail server
sunifu 0:3ea21ce21fe1 44 * @param data mail body
sunifu 0:3ea21ce21fe1 45 * @param user auth username
sunifu 0:3ea21ce21fe1 46 * @param pwd auth password
sunifu 0:3ea21ce21fe1 47 * @param port mail port
sunifu 0:3ea21ce21fe1 48 * @param auth SMTP auth
sunifu 0:3ea21ce21fe1 49 * @return 0:success, -1:failue
sunifu 0:3ea21ce21fe1 50 */
sunifu 0:3ea21ce21fe1 51 int sendmail (char *host, char *user, char *pwd,char *port,SMTPAuth auth);
sunifu 0:3ea21ce21fe1 52
sunifu 0:3ea21ce21fe1 53 /** setMessage
sunifu 0:3ea21ce21fe1 54 * @param sub Subject <The Subject are less than 64 characters.>
sunifu 0:3ea21ce21fe1 55 * @param msg Message
sunifu 0:3ea21ce21fe1 56 * @return 0:success, -1:failue
sunifu 0:3ea21ce21fe1 57 */
sunifu 0:3ea21ce21fe1 58 int setMessage(char *sub,char *msg);
sunifu 0:3ea21ce21fe1 59
sunifu 0:3ea21ce21fe1 60 /** addMessage
sunifu 0:3ea21ce21fe1 61 * @param msg Message
sunifu 0:3ea21ce21fe1 62 * @return 0:success, -1:failue
sunifu 0:3ea21ce21fe1 63 */
sunifu 0:3ea21ce21fe1 64 int addMessage(char *msg);
sunifu 0:3ea21ce21fe1 65
sunifu 0:3ea21ce21fe1 66 /** setFromAddress
sunifu 0:3ea21ce21fe1 67 * @param from mail address
sunifu 0:3ea21ce21fe1 68 * @return character count, -1:failue
sunifu 0:3ea21ce21fe1 69 */
sunifu 0:3ea21ce21fe1 70 int setFromAddress(char *from);
sunifu 0:3ea21ce21fe1 71
sunifu 0:3ea21ce21fe1 72 /** setToAddress <The ToAddress are less than 128 characters.>
sunifu 0:3ea21ce21fe1 73 * @param to mail address
sunifu 0:3ea21ce21fe1 74 * @return character count, -1:failue
sunifu 0:3ea21ce21fe1 75 */
sunifu 0:3ea21ce21fe1 76 int setToAddress(char *to);
sunifu 0:3ea21ce21fe1 77
sunifu 1:58550f022776 78 /** clearMessage
sunifu 1:58550f022776 79 *
sunifu 1:58550f022776 80 */
sunifu 1:58550f022776 81 void clearMessage(void);
sunifu 0:3ea21ce21fe1 82
sunifu 0:3ea21ce21fe1 83 private:
sunifu 0:3ea21ce21fe1 84 int base64enc(const char *input, unsigned int length, char *output, int outputlen);
sunifu 0:3ea21ce21fe1 85 int receiveMessage(int code);
sunifu 0:3ea21ce21fe1 86 char* getFromAddress(void);
sunifu 0:3ea21ce21fe1 87 char* getToAddress(void);
sunifu 0:3ea21ce21fe1 88 char* getSubject();
sunifu 0:3ea21ce21fe1 89 char* getHeader();
sunifu 0:3ea21ce21fe1 90 char* getMessage();
sunifu 0:3ea21ce21fe1 91 int makeHeader(void);
sunifu 0:3ea21ce21fe1 92
sunifu 0:3ea21ce21fe1 93 TCPSocketConnection smtp;
sunifu 0:3ea21ce21fe1 94 char header[256];
sunifu 0:3ea21ce21fe1 95 char body[1500];
sunifu 0:3ea21ce21fe1 96 char from[64];
sunifu 0:3ea21ce21fe1 97 char to[128];
sunifu 0:3ea21ce21fe1 98 char subject[64];
sunifu 0:3ea21ce21fe1 99 char message[1244];
sunifu 0:3ea21ce21fe1 100 };
sunifu 0:3ea21ce21fe1 101
sunifu 0:3ea21ce21fe1 102 #endif