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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? smailer.cpp

?? 股票分析系統(tǒng)源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
////////////////////////////////////////////////////////////////////////////////
// Simple Mail Sender (Implementation)
// Version 0.0
//
// 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.
////////////////////////////////////////////////////////////////////////////////

#include "StdAfx.h"

#include "SMailer.h"

#include <iostream>
#include <time.h>
#include <stdlib.h>

#include "../MUtils/Base64Helper.h"
#include "../MUtils/FileHelper.h"
//
namespace SMailer {

// constants defination
/////////////////////////////////////

enum {MAX_BUFFER_SIZE = 255};

const std::string Priority::important = "1";
const std::string Priority::normal    = "3";
const std::string Priority::trivial   = "5";

const std::string MailWrapper::_mailer_name = "SMailer";
const std::string MailWrapper::_boundary    = "#BOUNDARY#";

// Member functions of class MimeContent
/////////////////////////////////////

MimeContent::MimeContent(const std::string content) : _content(content)
{
}

std::string MimeContent::getDisposition() const
{
    return "";
}

// Member functions of class PlainTextContent
/////////////////////////////////////

TextPlainContent::TextPlainContent(const std::string content, 
                                   const std::string charset)
    : MimeContent(content), _charset(charset)
{
}

std::string TextPlainContent::getType() const
{
    return "text/plain; charset=" + _charset;
}

std::string TextPlainContent::getTransEncoding() const
{
    return "8bit";
}

std::string& TextPlainContent::getContent()
{
    // you can add more codes here, such as wrapping lines 
    // or replacing '\n' with '\r\n', etc.
    return _content;
}

// Member functions of class TextHtmlContent
/////////////////////////////////////

TextHtmlContent::TextHtmlContent(const std::string content, 
                                 const std::string charset)
    : MimeContent(content), _charset(charset)
{
}

std::string TextHtmlContent::getType() const
{
    return "text/html; charset=" + _charset;
}

std::string TextHtmlContent::getTransEncoding() const
{
    return "8bit";
}

std::string& TextHtmlContent::getContent()
{
    // you can add more codes here, such as wrapping lines 
    // or replacing '\n' with '\r\n', etc.
    return _content;
}

// Member functions of class AppOctStrmContent
/////////////////////////////////////

AppOctStrmContent::AppOctStrmContent(const std::string file_name)
    : _file_name(file_name)
{
    char drive[_MAX_DRIVE];
    char direc[_MAX_DIR];
    char fname[_MAX_FNAME];
    char ext[_MAX_EXT];
    _splitpath(file_name.c_str(), drive, direc, fname, ext);
    _name  = fname;
    _name += ext;
}

std::string AppOctStrmContent::getType() const
{
    return "application/octet-stream; name=" + _name;
}

std::string AppOctStrmContent::getDisposition() const
{
    return "attachment; filename=" + _name;
}

std::string AppOctStrmContent::getTransEncoding() const
{
    return "base64";
}

std::string& AppOctStrmContent::getContent()
{
    // you can add more codes here, such as wrapping lines 
    // or replacing '\n' with '\r\n', etc.
    MUtils::FileHelper::open(_file_name, _content);
    _content = MUtils::Base64Helper::encode(_content);
    return _content;
}

// Member functions of class MailInfo
/////////////////////////////////////

MailInfo::MailInfo() : _priority(Priority::normal)
{
}

void MailInfo::setSenderName(const std::string name)
{
    _sender_name = name;
}

void MailInfo::setSenderAddress(const std::string address)
{
    _sender_address = address;
}

std::string MailInfo::getSenderName() const
{
    return _sender_name;
}

std::string MailInfo::getSenderAddress() const
{
    return _sender_address;
}

void MailInfo::addReceiver(const std::string name, const std::string address)
{
    _receivers.insert(Receivers::value_type(name, address));
}

void MailInfo::setReceiver(const std::string name, const std::string address)
{
    _receivers.clear();
    _receivers.insert(Receivers::value_type(name, address));
}

const Receivers& MailInfo::getReceivers() const
{
    return _receivers;
}

void MailInfo::setPriority(std::string priority)
{
    _priority = priority;
}

std::string MailInfo::getPriority() const
{
    return _priority;
}

void MailInfo::setSubject(const std::string subject)
{
    _subject = subject;
}

std::string MailInfo::getSubject() const
{
    return _subject;
}

void MailInfo::addMimeContent(MimeContent* content)
{
    _contents.push_back(content);
}

void MailInfo::clearMimeContents()
{
    _contents.clear();
}

const MimeContents& MailInfo::getMimeContents() const
{
    return _contents;
}

// Member functions of class MailWrapper
/////////////////////////////////////

MailWrapper::MailWrapper(MailInfo* mail_info) : _mail_info(mail_info)
{
}

std::string MailWrapper::getSenderAddress()
{
    std::string address;

    address  = "<";
    address += _mail_info->getSenderAddress();
    address += ">";

    return address;
}

std::string MailWrapper::getHeader()
{
    std::string header;

    header  = "From: ";
    header += prepareFrom() + "\r\n";

    header += "Reply-To: ";
    header += _mail_info->getSenderAddress() + "\r\n";

    header += "To: ";
    header += prepareTo() + "\r\n";

    header += "Date: ";
    header += prepareDate() + "\r\n";

    header += "Subject: ";
    header += _mail_info->getSubject() + "\r\n";

    header += "X-Mailer: ";
    header += _mailer_name + "\r\n";

    header += "X-Priority: ";
    header += _mail_info->getPriority() + "\r\n";

    header += "MIME-Version: 1.0\r\n";
    header += "Content-type: multipart/mixed; boundary=\"";
    header += _boundary + "\"\r\n";

    header += "\r\n";

    return header;
}

void MailWrapper::traverseReceiver()
{
    _rcv_itr = _mail_info->getReceivers().begin();
}

bool MailWrapper::hasMoreReceiver()
{
    return ( _rcv_itr != _mail_info->getReceivers().end() );
}

std::string MailWrapper::nextReceiverAddress()
{
    std::string address;

    address  = "<";
    address += (_rcv_itr++)->second;
    address += ">";

    return address;
}

void MailWrapper::traverseContent()
{
    _con_itr = _mail_info->getMimeContents().begin();
}

bool MailWrapper::hasMoreContent()
{
    return ( _con_itr != _mail_info->getMimeContents().end() );
}

std::string& MailWrapper::nextContent()
{
    _content  = "--" + _boundary + "\r\n";

    _content += "Content-Type: ";
    _content += (*_con_itr)->getType() + "\r\n";

    std::string disposition = (*_con_itr)->getDisposition();
    if ( !disposition.empty() )
    {
        _content += "Content-Disposition: ";;
        _content += disposition + "\r\n";
    }

    _content += "Content-Transfer-Encoding: ";
    _content += (*_con_itr)->getTransEncoding() + "\r\n\r\n";

    _content += (*_con_itr)->getContent() + "\r\n\r\n";

    _con_itr++;

    return _content;
}

std::string MailWrapper::getEnd()
{
    std::string end;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产精华液| 日日摸夜夜添夜夜添精品视频| 蜜臀精品一区二区三区在线观看| 911国产精品| 国产伦精品一区二区三区免费迷 | heyzo一本久久综合| 一区二区三区四区精品在线视频| 99精品视频在线播放观看| 亚洲午夜久久久久中文字幕久| 欧美va亚洲va在线观看蝴蝶网| 国产成人免费在线观看| 亚洲成人中文在线| 国产丝袜在线精品| 欧美老年两性高潮| 国产成人免费网站| 午夜伦理一区二区| 国产精品久久久久久久久果冻传媒| 欧美日本一区二区三区| 国产成人精品影视| 丝袜美腿亚洲色图| wwwwxxxxx欧美| 欧美嫩在线观看| 成人动漫一区二区三区| 日韩国产在线观看一区| 日韩精品福利网| 一区二区三区高清在线| 久久天天做天天爱综合色| 91免费精品国自产拍在线不卡| 久久草av在线| 天天综合色天天综合色h| **性色生活片久久毛片| 精品88久久久久88久久久| 91小视频免费观看| 成熟亚洲日本毛茸茸凸凹| 亚洲高清三级视频| 一区视频在线播放| 国产欧美一区在线| 欧美日韩精品高清| 91啪九色porn原创视频在线观看| 国产一区视频导航| 精品一区二区三区免费观看| 亚洲国产欧美日韩另类综合| 亚洲欧洲色图综合| 久久久久久久久岛国免费| 色婷婷综合久色| 成人激情免费网站| 国产精品亚洲人在线观看| 人人超碰91尤物精品国产| 亚洲午夜一区二区| 一级中文字幕一区二区| 中文字幕av一区二区三区| 精品久久久久久久人人人人传媒| 欧美精品久久久久久久久老牛影院| 91久久精品网| 色综合天天综合网天天狠天天| 国产一区二区三区高清播放| 日本视频中文字幕一区二区三区| 天涯成人国产亚洲精品一区av| 亚洲一区二区三区四区不卡| 一区二区三区在线视频观看| 亚洲日本韩国一区| 亚洲综合色区另类av| 一区二区三区电影在线播| 亚洲精品成a人| 一区二区视频在线看| 亚洲视频综合在线| 亚洲黄色免费电影| 国产精品成人免费在线| 欧美国产精品专区| 亚洲欧美成aⅴ人在线观看 | 亚洲免费观看高清| 国产成人午夜高潮毛片| 成人午夜av电影| av在线不卡免费看| 色婷婷综合五月| 欧美日韩免费电影| 精品理论电影在线| 国产精品视频在线看| 国产精品毛片无遮挡高清| 中文字幕亚洲在| 亚洲一区在线观看免费观看电影高清| 亚洲.国产.中文慕字在线| 美女被吸乳得到大胸91| 国产一区欧美一区| 成人美女视频在线看| 97成人超碰视| 56国语精品自产拍在线观看| 26uuu亚洲| 国产精品高清亚洲| 午夜不卡av免费| 国产麻豆9l精品三级站| 亚洲狼人国产精品| 毛片一区二区三区| 色视频成人在线观看免| 久久久精品中文字幕麻豆发布| 一区二区三区视频在线观看| 精品一区二区三区视频| 在线免费av一区| 国产精品午夜久久| 精品影视av免费| 欧美午夜电影在线播放| 欧美激情综合在线| 免费亚洲电影在线| 欧美系列日韩一区| 自拍偷拍国产亚洲| 国产麻豆精品theporn| 欧美日韩国产小视频| 亚洲欧洲精品一区二区三区不卡| 久久 天天综合| 69av一区二区三区| 亚洲成在线观看| 97精品久久久午夜一区二区三区| 久久精品亚洲一区二区三区浴池| 日本在线不卡视频一二三区| 欧日韩精品视频| 一区视频在线播放| kk眼镜猥琐国模调教系列一区二区| 欧美mv日韩mv| 91久久一区二区| 亚洲欧美日韩国产综合| 不卡一区中文字幕| 国产精品午夜在线观看| 丁香婷婷综合激情五月色| 久久一区二区视频| 国内成人自拍视频| 精品免费视频.| 国模套图日韩精品一区二区| 欧美一级高清片| 日韩1区2区3区| 欧美一区二区成人6969| 美国欧美日韩国产在线播放| 欧美一级艳片视频免费观看| 欧美a级一区二区| 欧美白人最猛性xxxxx69交| 久久99国产精品麻豆| 精品国产一区a| 国产一区二区在线视频| 久久久久久久av麻豆果冻| 国产一区不卡在线| 欧美激情一区三区| 成人精品视频一区二区三区尤物| 中文字幕久久午夜不卡| 成人aa视频在线观看| 亚洲天天做日日做天天谢日日欢| av亚洲精华国产精华精华 | 亚洲色图20p| 欧美在线观看你懂的| 午夜在线电影亚洲一区| 欧美日本在线观看| 久久国产麻豆精品| 国产亚洲精久久久久久| 91在线高清观看| 亚洲影院理伦片| 欧美一级黄色大片| 国产高清不卡一区| 中文字幕在线播放不卡一区| 91精品办公室少妇高潮对白| 午夜不卡在线视频| 久久久久久亚洲综合影院红桃| 成人午夜免费视频| 亚洲女性喷水在线观看一区| 欧美日韩精品一区二区| 久久99精品久久久| 18成人在线观看| 在线不卡的av| 国产成人福利片| 亚洲天堂av老司机| 制服丝袜日韩国产| 国产精品 欧美精品| 一区二区三区在线影院| 欧美va在线播放| 色综合久久久久综合体桃花网| 青青草国产精品97视觉盛宴| 欧美国产亚洲另类动漫| 亚洲激情男女视频| 91精品欧美综合在线观看最新| 国产一区91精品张津瑜| 一区二区三区四区亚洲| 日韩免费高清av| 日本韩国欧美三级| 国产一区欧美二区| 夜夜夜精品看看| 久久中文字幕电影| 欧洲亚洲国产日韩| 国产乱对白刺激视频不卡| 亚洲一卡二卡三卡四卡无卡久久 | 成人99免费视频| 日韩精品乱码免费| 亚洲天堂成人网| 久久久不卡网国产精品二区| 欧美性生活大片视频| 国产成人综合在线观看| 亚洲午夜在线电影| 国产精品二三区| 久久免费视频色| 欧美精品国产精品| 99国内精品久久| 久久激五月天综合精品| 亚洲bt欧美bt精品777| 国产精品午夜在线观看|