uIP 1.0
|
00001 /** 00002 * \addtogroup smtp 00003 * @{ 00004 */ 00005 00006 00007 /** 00008 * \file 00009 * Заголовочный файл SMTP 00010 * \author Adam Dunkels <adam@dunkels.com> 00011 */ 00012 00013 /* 00014 * Copyright (c) 2002, Adam Dunkels. 00015 * Все права зарезервированы. * 00016 * Повторное распространение, использование в исходном и двоичном виде, 00017 * с модификацией или без - разрешается, если выполняются следующие 00018 * условия: 00019 * 1. Распространение исходного кода должно сохранить вышеуказанную пометку 00020 * копирайта, этот список условий и следующую правовую оговорку. 00021 * 2. Распространение исходного кода должно сохранить вышеуказанную пометку 00022 * копирайта, этот список условий и следующую правовую оговорку в 00023 * документации и/или других материалах, которые будут предоставлены 00024 * вместе с распространяемыми материалами. 00025 * 3. Имя автора не может использоваться, чтобы подтвердить или продвинуть 00026 * продукты, написанные с использованием этого программного обеспечения 00027 * без специального на то разрешения. 00028 * 00029 * ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ АВТОРОМ ``КАК ЕСТЬ'', БЕЗ 00030 * КАКОЙ-ЛИБО ЛЮБОЙ РАСШИРЕННОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ ГАРАНТИИ, ВКЛЮЧАЯ, 00031 * НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ГАРАНТИИ ВЫСОКОГО СПРОСА И ПРИГОДНОСТИ 00032 * ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. АВТОР НИ ПРИ КАКИХ УСЛОВИЯХ НЕ ОТВЕТСТВЕНЕН 00033 * ЗА ЛЮБЫЕ УБЫТКИ - ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОБРАЗЦОВЫЕ 00034 * ИЛИ ПОСЛЕДОВАТЕЛЬНЫЕ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ТРЕБОВАНИЯ 00035 * ЗАМЕНЫ ТОВАРА ИЛИ СЕРВИСА; ПОТЕРИ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ВЫГОДЫ; 00036 * ИЛИ ПРЕКРАЩЕНИЕ БИЗНЕСА), ОДНАКО ВЫЗВАННЫЕ ПО ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, 00037 * ЛИБО В КОНТРАКТЕ, ПРЯМОЙ ОТВЕТСТВЕННОСТИ, ЛИБО В НАРУШЕНИИ ЗАКОННЫХ ПРАВ 00038 * (ВКЛЮЧАЯ ТАК ИЛИ ИНАЧЕ НЕБРЕЖНОСТЬ), ВОЗНИКАЮЩИЕ ВСЕГДА ИЗ ИСПОЛЬЗОВАНИЯ 00039 * ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ БЫЛО ПРЕДУПРЕЖДЕНИЕ О ВОЗМОЖНОСТИ 00040 * ТАКОГО ПОВРЕЖДЕНИЯ. 00041 * 00042 * Этот файл является частью стека uIP TCP/IP. 00043 * 00044 * $Id: smtp.h,v 1.4 2006/06/11 21:46:37 adam Exp $ 00045 * 00046 */ 00047 #ifndef __SMTP_H__ 00048 #define __SMTP_H__ 00049 00050 #include "uipopt.h" 00051 00052 /** 00053 * Номер, который указывает на отсутствие ошибки. 00054 */ 00055 #define SMTP_ERR_OK 0 00056 00057 /** 00058 * Функция обратного вызова (callback), которая вызывается, когда передача 00059 * e-mail завершена. 00060 * 00061 * Эта функция должна быть реализована в том модуле кода, который использует 00062 * модуль SMTP. 00063 * 00064 * \param error Номер ошибки, если она была, или SMTP_ERR_OK. 00065 */ 00066 void smtp_done(unsigned char error); 00067 00068 void smtp_init(void); 00069 00070 /* Функции. */ 00071 void smtp_configure(char *localhostname, u16_t *smtpserver); 00072 unsigned char smtp_send(char *to, char *from, 00073 char *subject, char *msg, 00074 u16_t msglen); 00075 #define SMTP_SEND(to, cc, from, subject, msg) \ 00076 smtp_send(to, cc, from, subject, msg, strlen(msg)) 00077 00078 void smtp_appcall(void); 00079 00080 struct smtp_state { 00081 u8_t state; 00082 char *to; 00083 char *from; 00084 char *subject; 00085 char *msg; 00086 u16_t msglen; 00087 00088 u16_t sentlen, textlen; 00089 u16_t sendptr; 00090 00091 }; 00092 00093 00094 #ifndef UIP_APPCALL 00095 #define UIP_APPCALL smtp_appcall 00096 #endif 00097 typedef struct smtp_state uip_tcp_appstate_t; 00098 00099 00100 #endif /* __SMTP_H__ */ 00101 00102 /** @} */