亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? smailer.h

?? 股票分析系統源碼
?? H
字號:
////////////////////////////////////////////////////////////////////////////////
// Simple Mail Sender (Interface)
//
// Copyright (c) 2003 by Morning
// http://morningspace.51.net
// mailto:moyingzz@etang.com
//
// Permission to use, copy, modify, distribute and sell this program for any 
// purpose is hereby granted without fee, provided that the above copyright 
// notice appear in all copies and that both that copyright notice and this 
// permission notice appear in supporting documentation.
//
// It is provided "as is" without express or implied warranty.
////////////////////////////////////////////////////////////////////////////////

#ifndef _SMAILER_H_
#define _SMAILER_H_

#pragma warning( disable : 4786 )	// warning C4786: identifier was truncated to '255' characters in the browser information

//
#include <string>
#include <vector>
#include <map>
// #include <exception>
// #include <winsock2.h>
//
namespace SMailer {

// class MimeContent(Abstract class)
/////////////////////////////////////

class MimeContent
{
public:

    MimeContent(const std::string content = "");

    virtual std::string  getType() const = 0;
    virtual std::string  getDisposition() const;
    virtual std::string  getTransEncoding() const = 0;
    virtual std::string& getContent() = 0;

protected:

    std::string _content;
};

typedef std::vector<MimeContent*> MimeContents;

// class PlainTextContent
/////////////////////////////////////

class TextPlainContent : public MimeContent
{
public:

    TextPlainContent(const std::string content, 
                     const std::string charset = "gb2312");

    virtual std::string  getType() const;
    virtual std::string  getTransEncoding() const;
    virtual std::string& getContent();

private:

    std::string _charset;
};

// class TextHtmlContent
/////////////////////////////////////

class TextHtmlContent : public MimeContent
{
public:

    TextHtmlContent(const std::string content, 
                    const std::string charset = "gb2312");

    virtual std::string  getType() const;
    virtual std::string  getTransEncoding() const;
    virtual std::string& getContent();

private:

    std::string _charset;
};

// class AppOctStrmContent
/////////////////////////////////////

class AppOctStrmContent : public MimeContent
{
public:

    AppOctStrmContent(const std::string file_name);

    virtual std::string  getType() const;
    virtual std::string  getDisposition() const;
    virtual std::string  getTransEncoding() const;
    virtual std::string& getContent();

private:

    std::string _file_name;
    std::string _name;
};

// class Priority(Helper class)
/////////////////////////////////////

class Priority
{
public:

    static const std::string important;
    static const std::string normal;
    static const std::string trivial;
};

// class MailInfo
/////////////////////////////////////

typedef std::multimap<std::string, std::string> Receivers;

class MailInfo
{
public:

    MailInfo();

    void setSenderName(const std::string name);
    void setSenderAddress(const std::string address);
    std::string getSenderName() const;
    std::string getSenderAddress() const;

    void addReceiver(const std::string name, const std::string address);
    void setReceiver(const std::string name, const std::string address);
    const Receivers& getReceivers() const;

    void setPriority(std::string priority);
    std::string getPriority() const;

    void setSubject(const std::string subject);
    std::string getSubject() const;

    void addMimeContent(MimeContent* content);
    void clearMimeContents();
    const MimeContents& getMimeContents() const;

private:

    std::string  _sender_name;
    std::string  _sender_address;
    Receivers    _receivers;
    std::string  _priority;
    std::string  _subject;
    MimeContents _contents;
};

// class MailWrapper
/////////////////////////////////////

class MailWrapper
{
public:

    MailWrapper(MailInfo* mail_info);

    std::string getSenderAddress();
    std::string getHeader();
    std::string getEnd();

    void traverseReceiver();
    bool hasMoreReceiver();
    std::string nextReceiverAddress();

    void traverseContent();
    bool hasMoreContent();
    std::string& nextContent();

private:

    static const std::string _mailer_name;
    static const std::string _boundary;

    MailInfo* _mail_info;
    Receivers::const_iterator _rcv_itr;

    std::string _content;
    MimeContents::const_iterator _con_itr;

    std::string prepareFrom();
    std::string prepareTo();
    std::string prepareDate();
    std::string prepareName(const std::string raw_name);
};

// class MailSender
/////////////////////////////////////

class MailSender
{
public:

    MailSender(const std::string server_name, 
               const std::string user_name = "", 
               const std::string user_pwd = "");

    ~MailSender();

    void setMail(MailWrapper* mail);

    bool sendMail();
    
    const char * getErrMessage()
    {
    	return _err_message.c_str();
    }

private:

    enum {SERVICE_PORT = 25};

    enum Operaion
    {
        send_helo_cmd, 
        send_auth_cmd, 
        send_username, 
        send_password, 
        send_mail_cmd, 
        send_rcpt_cmd, 
        send_data_cmd, 
        send_header, 
        send_content, 
        send_end, 
        send_quit_cmd, 
    };

    std::string _server_name;
    std::string _user_name;
    std::string _user_pwd;
    SOCKET _socket;

    MailWrapper* _mail;
    
    std::string _err_message;

    std::string getSenderAddress() const;

    bool conn();
    bool hello();
    bool login();

    bool sendHeader();
    bool sendContent();
    bool sendEnd();

    bool quit();

    bool sendRequest(Operaion operation, const std::string content);
    bool rcvResponse(const std::string expected_response);

    friend class ErrorMessage;
};

// class ErrorMessage(Helper class)
/////////////////////////////////////

class ErrorMessage
{
public:

    static ErrorMessage& getInstance();

    std::string request (MailSender::Operaion request_operation);
    std::string response(const std::string expected_response);

private:

    std::map<MailSender::Operaion, std::string> _request_errmsg_map;
    std::map<std::string, std::string> _respons_errmsg_map;

    ErrorMessage();
};

// class MailException(Helper class)
/////////////////////////////////////

class MailException : public std::exception
{

public:
    MailException(std::string message = "")
     : _message(message)
    {
    }

	~MailException() { }

    const char *what() const
    {
        return _message.c_str();
    }

private:

    std::string _message;
};

} // namespace SMailer

#endif // _SMAILER_H_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜在线免费| 一区二区三区视频在线看| 在线观看区一区二| 成人一级片网址| 国产精品一区久久久久| 日韩高清电影一区| 日韩成人免费电影| 久久精品国产**网站演员| 亚洲成人你懂的| 青青草原综合久久大伊人精品优势| 亚洲高清在线精品| 午夜精品福利在线| 日韩国产精品久久久久久亚洲| 日本欧美一区二区三区| 久久国产精品72免费观看| 老司机一区二区| 国产成人精品免费在线| 成人午夜视频在线观看| 色拍拍在线精品视频8848| 欧美性大战久久久久久久蜜臀| 欧美午夜免费电影| 日韩一区二区免费在线观看| 精品处破学生在线二十三| 久久―日本道色综合久久| 国产精品色呦呦| 偷拍一区二区三区| 日本sm残虐另类| 高清国产午夜精品久久久久久| 91麻豆免费看片| 欧美精品1区2区3区| 久久蜜臀中文字幕| 亚洲欧美国产毛片在线| 秋霞午夜鲁丝一区二区老狼| 国产综合久久久久久久久久久久| av亚洲产国偷v产偷v自拍| 欧美体内she精高潮| 26uuu国产电影一区二区| 亚洲欧美综合在线精品| 日本不卡的三区四区五区| 波多野结衣亚洲一区| 日韩视频国产视频| 中文字幕一区二区5566日韩| 亚洲午夜久久久久久久久久久| 精品中文av资源站在线观看| 91丨九色丨蝌蚪丨老版| 日韩欧美中文一区二区| 亚洲日本va午夜在线电影| 久久se精品一区二区| 91一区二区在线| 久久久噜噜噜久噜久久综合| 亚洲成av人片在线| 不卡影院免费观看| 精品理论电影在线观看 | 香蕉加勒比综合久久| 国产精品影视网| 欧美精品一二三| 中文字幕中文字幕一区二区| 日本视频在线一区| 色婷婷激情综合| 欧美经典一区二区| 美女诱惑一区二区| 欧洲生活片亚洲生活在线观看| xnxx国产精品| 久热成人在线视频| 欧美喷水一区二区| 亚洲欧洲色图综合| 粉嫩嫩av羞羞动漫久久久| 日韩精品一区二区三区视频在线观看| 亚洲一区av在线| 色女孩综合影院| 中文字幕亚洲电影| youjizz国产精品| 国产精品欧美一级免费| 韩国v欧美v日本v亚洲v| 精品国产乱码91久久久久久网站| 男女性色大片免费观看一区二区| 欧美性大战xxxxx久久久| 亚洲色图.com| 在线区一区二视频| 午夜欧美电影在线观看| 欧美日韩国产高清一区二区三区 | 麻豆成人免费电影| 91精品国产欧美一区二区18| 天天综合天天综合色| 欧美日韩国产影片| 日韩精品一二区| 欧美sm极限捆绑bd| 国产剧情av麻豆香蕉精品| 国产无一区二区| www.欧美日韩| 亚洲一区二区欧美| 91精品啪在线观看国产60岁| 久久机这里只有精品| 久久久久亚洲蜜桃| 91美女蜜桃在线| 日韩电影在线一区| 久久这里只有精品视频网| 白白色亚洲国产精品| 亚洲一区精品在线| 日韩欧美视频在线| 国产白丝网站精品污在线入口| 中文字幕一区二区三区精华液 | 欧美一区二区观看视频| 经典三级一区二区| 亚洲视频资源在线| 91精品国产91久久久久久最新毛片 | 日本午夜精品视频在线观看| 2021久久国产精品不只是精品| 粉嫩在线一区二区三区视频| 亚洲精品视频一区二区| 欧美精选午夜久久久乱码6080| 国产在线精品免费| 亚洲嫩草精品久久| 久久综合九色综合欧美就去吻 | 日本一区二区视频在线| 99久久er热在这里只有精品15| 亚洲另类春色国产| 日韩欧美专区在线| 成年人午夜久久久| 精品在线你懂的| 一区二区三区精品久久久| 日韩一级高清毛片| 色综合中文字幕| 成人晚上爱看视频| 久久精品国产99国产| 亚洲精品日韩一| 亚洲国产成人一区二区三区| 欧美电影在哪看比较好| av电影在线观看完整版一区二区| 美脚の诱脚舐め脚责91| 亚洲一本大道在线| 国产精品久久久久三级| 精品国产污污免费网站入口 | 久久伊人蜜桃av一区二区| 在线观看亚洲精品视频| 成人毛片视频在线观看| 久久福利资源站| 日韩国产在线观看一区| 亚洲一区二区综合| 亚洲同性gay激情无套| 国产欧美日本一区二区三区| 欧美哺乳videos| 欧美丰满嫩嫩电影| 在线观看中文字幕不卡| 91女人视频在线观看| 成人午夜免费视频| 粉嫩高潮美女一区二区三区 | 中文字幕五月欧美| 国产精品欧美一级免费| 久久精品一区二区三区四区| 精品欧美黑人一区二区三区| 欧美一区二区在线免费播放| 欧美日韩高清在线| 69堂国产成人免费视频| 欧美日本在线一区| 欧美精品在线观看播放| 欧美日韩免费高清一区色橹橹| 97精品久久久午夜一区二区三区| 成年人网站91| 一本色道久久综合狠狠躁的推荐| 99免费精品在线| 在线观看亚洲成人| 欧美视频一区二区三区在线观看| 欧美日韩一区二区三区高清 | 精品国产髙清在线看国产毛片| 精品剧情在线观看| 久久精品一区二区三区四区| 国产精品天美传媒| 亚洲欧美二区三区| 亚洲国产精品一区二区www在线 | 99久久婷婷国产精品综合| gogo大胆日本视频一区| 在线视频亚洲一区| 717成人午夜免费福利电影| 日韩精品资源二区在线| 久久久五月婷婷| 亚洲三级在线观看| 日韩精品91亚洲二区在线观看| 精品一区二区三区影院在线午夜| 国产精品一区免费视频| 91亚洲男人天堂| 欧美一区午夜精品| 国产精品视频免费看| 午夜精品视频一区| 欧美午夜不卡在线观看免费| 欧美男生操女生| 久久人人爽爽爽人久久久| 亚洲欧美激情在线| 激情小说欧美图片| 91麻豆6部合集magnet| 欧美一级久久久久久久大片| 欧美国产一区二区| 偷偷要91色婷婷| 99精品视频在线免费观看| 91精品欧美福利在线观看| 国产免费成人在线视频| 青青国产91久久久久久| 91免费视频观看| 国产欧美精品一区二区色综合| 亚洲mv在线观看|