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
SimpleSMTPClient.h
- Committer:
- sunifu
- Date:
- 2015-12-01
- Revision:
- 8:311b1f7cebb7
- Parent:
- 7:0847fa2294a0
File content as of revision 8:311b1f7cebb7:
/*
*
* mbed Simple SMTP Client
* Copyright (c) 2012 Tadao Iida
* Released under the MIT License: http://mbed.org/license/mit
*/
/** @file
* @brief Simple SMTP Client
*/
#ifndef SimpleSMTPC_h
#define SimpleSMTPC_h
#include "EthernetInterface.h"
///SMTP authentication
enum SMTPAuth {
SMTP_AUTH_NONE, ///<No authentication
SMTP_AUTH_PLAIN, ///<AUTH PLAIN authentication
SMTP_AUTH_LOGIN
};
///SimpleSMTP client results
enum SMTPResult
{
SMTP_AUTH_OK = 235, ///<Authentication successful
SMTP_OK = 250, ///<Requested mail action okay, completed
SMTP_INPUT = 354 ///<Start mail input
};
#define DEBUG
#define SMTP_TIMEOUT 15000 // ms
class SimpleSMTPClient
{
public:
/**
Instantiate the SimpleSMTP client
*/
SimpleSMTPClient();
/** send mail
* @param host mail server
* @param data mail body
* @param user auth username
* @param pwd auth password
* @param domain
* @param port mail port
* @param auth SMTP auth
* @return 0:success, -1:failue
*/
int sendmail (char *host, char *user, char *pwd,char *domain,char *port,SMTPAuth auth);
/** setMessage
* @param sub Subject <The Subject are less than 64 characters.>
* @param msg Message
* @return 0:success, -1:failue
*/
int setMessage(char *sub,char *msg);
/** addMessage
* @param msg Message
* @return 0:success, -1:failue
*/
int addMessage(char *msg);
/** setFromAddress
* @param from mail address
* @return character count, -1:failue
*/
int setFromAddress(char *from);
/** setToAddress <The ToAddress are less than 128 characters.>
* @param to mail address
* @return character count, -1:failue
*/
int setToAddress(char *to);
/** clearMessage
*
*/
void clearMessage(void);
/** msgLength
*
*/
int msgLength(void);
private:
int base64enc(const char *input, unsigned int length, char *output, int outputlen);
int receiveMessage(int code);
char* getFromAddress(void);
char* getToAddress(void);
char* getSubject();
char* getHeader();
char* getMessage();
int makeHeader(void);
TCPSocketConnection smtp;
char header[256];
char body[1500];
char from[64];
char to[128];
char subject[64];
char message[1244];
};
#endif