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:
Thu Dec 13 09:17:27 2012 +0000
Revision:
4:7d16b08a1291
Parent:
2:27053679f44b
Child:
5:846af4db63c5
Ver 1.03 Add clearMessage function

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 2:27053679f44b 47 * @param domain
sunifu 0:3ea21ce21fe1 48 * @param port mail port
sunifu 0:3ea21ce21fe1 49 * @param auth SMTP auth
sunifu 0:3ea21ce21fe1 50 * @return 0:success, -1:failue
sunifu 0:3ea21ce21fe1 51 */
sunifu 2:27053679f44b 52 int sendmail (char *host, char *user, char *pwd,char *domain,char *port,SMTPAuth auth);
sunifu 0:3ea21ce21fe1 53
sunifu 0:3ea21ce21fe1 54 /** setMessage
sunifu 0:3ea21ce21fe1 55 * @param sub Subject <The Subject are less than 64 characters.>
sunifu 0:3ea21ce21fe1 56 * @param msg Message
sunifu 0:3ea21ce21fe1 57 * @return 0:success, -1:failue
sunifu 0:3ea21ce21fe1 58 */
sunifu 0:3ea21ce21fe1 59 int setMessage(char *sub,char *msg);
sunifu 0:3ea21ce21fe1 60
sunifu 0:3ea21ce21fe1 61 /** addMessage
sunifu 0:3ea21ce21fe1 62 * @param msg Message
sunifu 0:3ea21ce21fe1 63 * @return 0:success, -1:failue
sunifu 0:3ea21ce21fe1 64 */
sunifu 0:3ea21ce21fe1 65 int addMessage(char *msg);
sunifu 0:3ea21ce21fe1 66
sunifu 0:3ea21ce21fe1 67 /** setFromAddress
sunifu 0:3ea21ce21fe1 68 * @param from mail address
sunifu 0:3ea21ce21fe1 69 * @return character count, -1:failue
sunifu 0:3ea21ce21fe1 70 */
sunifu 0:3ea21ce21fe1 71 int setFromAddress(char *from);
sunifu 0:3ea21ce21fe1 72
sunifu 0:3ea21ce21fe1 73 /** setToAddress <The ToAddress are less than 128 characters.>
sunifu 0:3ea21ce21fe1 74 * @param to mail address
sunifu 0:3ea21ce21fe1 75 * @return character count, -1:failue
sunifu 0:3ea21ce21fe1 76 */
sunifu 0:3ea21ce21fe1 77 int setToAddress(char *to);
sunifu 0:3ea21ce21fe1 78
sunifu 4:7d16b08a1291 79 /** clearMessage
sunifu 4:7d16b08a1291 80 *
sunifu 4:7d16b08a1291 81 */
sunifu 4:7d16b08a1291 82 void clearMessage(void);
sunifu 4:7d16b08a1291 83
sunifu 2:27053679f44b 84
sunifu 0:3ea21ce21fe1 85
sunifu 0:3ea21ce21fe1 86 private:
sunifu 0:3ea21ce21fe1 87 int base64enc(const char *input, unsigned int length, char *output, int outputlen);
sunifu 0:3ea21ce21fe1 88 int receiveMessage(int code);
sunifu 0:3ea21ce21fe1 89 char* getFromAddress(void);
sunifu 0:3ea21ce21fe1 90 char* getToAddress(void);
sunifu 0:3ea21ce21fe1 91 char* getSubject();
sunifu 0:3ea21ce21fe1 92 char* getHeader();
sunifu 0:3ea21ce21fe1 93 char* getMessage();
sunifu 0:3ea21ce21fe1 94 int makeHeader(void);
sunifu 0:3ea21ce21fe1 95
sunifu 0:3ea21ce21fe1 96 TCPSocketConnection smtp;
sunifu 0:3ea21ce21fe1 97 char header[256];
sunifu 0:3ea21ce21fe1 98 char body[1500];
sunifu 0:3ea21ce21fe1 99 char from[64];
sunifu 0:3ea21ce21fe1 100 char to[128];
sunifu 0:3ea21ce21fe1 101 char subject[64];
sunifu 0:3ea21ce21fe1 102 char message[1244];
sunifu 0:3ea21ce21fe1 103 };
sunifu 0:3ea21ce21fe1 104
sunifu 0:3ea21ce21fe1 105 #endif