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 01 13:45:11 2015 +0000
Revision:
8:311b1f7cebb7
Parent:
7:0847fa2294a0
Update

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 7:0847fa2294a0 20 SMTP_AUTH_PLAIN, ///<AUTH PLAIN authentication
sunifu 7:0847fa2294a0 21 SMTP_AUTH_LOGIN
sunifu 0:3ea21ce21fe1 22 };
sunifu 0:3ea21ce21fe1 23
sunifu 0:3ea21ce21fe1 24 ///SimpleSMTP client results
sunifu 0:3ea21ce21fe1 25 enum SMTPResult
sunifu 0:3ea21ce21fe1 26 {
sunifu 0:3ea21ce21fe1 27 SMTP_AUTH_OK = 235, ///<Authentication successful
sunifu 0:3ea21ce21fe1 28 SMTP_OK = 250, ///<Requested mail action okay, completed
sunifu 0:3ea21ce21fe1 29 SMTP_INPUT = 354 ///<Start mail input
sunifu 0:3ea21ce21fe1 30 };
sunifu 0:3ea21ce21fe1 31 #define DEBUG
sunifu 0:3ea21ce21fe1 32
sunifu 0:3ea21ce21fe1 33 #define SMTP_TIMEOUT 15000 // ms
sunifu 0:3ea21ce21fe1 34
sunifu 0:3ea21ce21fe1 35 class SimpleSMTPClient
sunifu 0:3ea21ce21fe1 36 {
sunifu 0:3ea21ce21fe1 37 public:
sunifu 0:3ea21ce21fe1 38 /**
sunifu 0:3ea21ce21fe1 39 Instantiate the SimpleSMTP client
sunifu 0:3ea21ce21fe1 40 */
sunifu 0:3ea21ce21fe1 41 SimpleSMTPClient();
sunifu 0:3ea21ce21fe1 42
sunifu 0:3ea21ce21fe1 43 /** send mail
sunifu 0:3ea21ce21fe1 44 * @param host mail server
sunifu 0:3ea21ce21fe1 45 * @param data mail body
sunifu 0:3ea21ce21fe1 46 * @param user auth username
sunifu 0:3ea21ce21fe1 47 * @param pwd auth password
sunifu 2:27053679f44b 48 * @param domain
sunifu 0:3ea21ce21fe1 49 * @param port mail port
sunifu 0:3ea21ce21fe1 50 * @param auth SMTP auth
sunifu 0:3ea21ce21fe1 51 * @return 0:success, -1:failue
sunifu 0:3ea21ce21fe1 52 */
sunifu 2:27053679f44b 53 int sendmail (char *host, char *user, char *pwd,char *domain,char *port,SMTPAuth auth);
sunifu 0:3ea21ce21fe1 54
sunifu 0:3ea21ce21fe1 55 /** setMessage
sunifu 0:3ea21ce21fe1 56 * @param sub Subject <The Subject are less than 64 characters.>
sunifu 0:3ea21ce21fe1 57 * @param msg Message
sunifu 0:3ea21ce21fe1 58 * @return 0:success, -1:failue
sunifu 0:3ea21ce21fe1 59 */
sunifu 0:3ea21ce21fe1 60 int setMessage(char *sub,char *msg);
sunifu 0:3ea21ce21fe1 61
sunifu 0:3ea21ce21fe1 62 /** addMessage
sunifu 0:3ea21ce21fe1 63 * @param msg Message
sunifu 0:3ea21ce21fe1 64 * @return 0:success, -1:failue
sunifu 0:3ea21ce21fe1 65 */
sunifu 0:3ea21ce21fe1 66 int addMessage(char *msg);
sunifu 0:3ea21ce21fe1 67
sunifu 0:3ea21ce21fe1 68 /** setFromAddress
sunifu 0:3ea21ce21fe1 69 * @param from mail address
sunifu 0:3ea21ce21fe1 70 * @return character count, -1:failue
sunifu 0:3ea21ce21fe1 71 */
sunifu 0:3ea21ce21fe1 72 int setFromAddress(char *from);
sunifu 0:3ea21ce21fe1 73
sunifu 0:3ea21ce21fe1 74 /** setToAddress <The ToAddress are less than 128 characters.>
sunifu 0:3ea21ce21fe1 75 * @param to mail address
sunifu 0:3ea21ce21fe1 76 * @return character count, -1:failue
sunifu 0:3ea21ce21fe1 77 */
sunifu 0:3ea21ce21fe1 78 int setToAddress(char *to);
sunifu 0:3ea21ce21fe1 79
sunifu 4:7d16b08a1291 80 /** clearMessage
sunifu 4:7d16b08a1291 81 *
sunifu 4:7d16b08a1291 82 */
sunifu 4:7d16b08a1291 83 void clearMessage(void);
sunifu 5:846af4db63c5 84
sunifu 5:846af4db63c5 85 /** msgLength
sunifu 5:846af4db63c5 86 *
sunifu 5:846af4db63c5 87 */
sunifu 5:846af4db63c5 88 int msgLength(void);
sunifu 2:27053679f44b 89
sunifu 0:3ea21ce21fe1 90
sunifu 0:3ea21ce21fe1 91 private:
sunifu 0:3ea21ce21fe1 92 int base64enc(const char *input, unsigned int length, char *output, int outputlen);
sunifu 0:3ea21ce21fe1 93 int receiveMessage(int code);
sunifu 0:3ea21ce21fe1 94 char* getFromAddress(void);
sunifu 0:3ea21ce21fe1 95 char* getToAddress(void);
sunifu 0:3ea21ce21fe1 96 char* getSubject();
sunifu 0:3ea21ce21fe1 97 char* getHeader();
sunifu 0:3ea21ce21fe1 98 char* getMessage();
sunifu 0:3ea21ce21fe1 99 int makeHeader(void);
sunifu 0:3ea21ce21fe1 100
sunifu 0:3ea21ce21fe1 101 TCPSocketConnection smtp;
sunifu 0:3ea21ce21fe1 102 char header[256];
sunifu 0:3ea21ce21fe1 103 char body[1500];
sunifu 0:3ea21ce21fe1 104 char from[64];
sunifu 0:3ea21ce21fe1 105 char to[128];
sunifu 0:3ea21ce21fe1 106 char subject[64];
sunifu 0:3ea21ce21fe1 107 char message[1244];
sunifu 0:3ea21ce21fe1 108 };
sunifu 0:3ea21ce21fe1 109
sunifu 0:3ea21ce21fe1 110 #endif