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

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

?? smailer.cpp

?? 股票分析系統源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
////////////////////////////////////////////////////////////////////////////////
// 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费视频一区| 久久99九九99精品| av一区二区三区四区| 国产女主播一区| 成人黄色电影在线| 中文字幕中文乱码欧美一区二区| 成人涩涩免费视频| 亚洲日本韩国一区| 欧美特级限制片免费在线观看| 亚洲成人av在线电影| 欧美高清性hdvideosex| 久久成人麻豆午夜电影| 久久久久久久av麻豆果冻| 成人av影视在线观看| 最新热久久免费视频| 欧美日韩极品在线观看一区| 美女www一区二区| 国产蜜臀av在线一区二区三区| 99re热这里只有精品免费视频 | 欧美一级爆毛片| 久久超级碰视频| 中文字幕第一区综合| 91国产免费看| 免费观看一级欧美片| 中文字幕不卡的av| 欧美日韩精品一区二区三区四区| 久久99国产精品久久99 | 中文字幕永久在线不卡| 欧美在线观看18| 国产在线播放一区| 亚洲宅男天堂在线观看无病毒| 欧美xxxxx牲另类人与| 99r国产精品| 久久99国产精品免费| 一区二区在线观看视频在线观看| 91精品国产免费久久综合| 高清国产午夜精品久久久久久| 一区二区三区在线视频免费| 精品国产凹凸成av人网站| 91天堂素人约啪| 九九热在线视频观看这里只有精品| 国产精品传媒入口麻豆| 欧美一区二区在线观看| av中文一区二区三区| 久久91精品国产91久久小草| 亚洲欧美一区二区三区孕妇| 26uuu成人网一区二区三区| 欧美在线高清视频| 成人av网站大全| 国产一区二区精品久久| 日韩av网站在线观看| 亚洲影院理伦片| 国产精品白丝在线| 国产亚洲精品精华液| 日韩视频免费观看高清完整版在线观看 | av动漫一区二区| 国内外成人在线视频| 视频一区二区欧美| 亚洲黄网站在线观看| 国产精品国产成人国产三级| 久久久亚洲午夜电影| 日韩一本二本av| 欧美午夜精品一区| 色综合天天狠狠| www.日韩av| 成人影视亚洲图片在线| 韩国精品主播一区二区在线观看| 午夜电影久久久| 亚洲一区二区高清| 亚洲国产中文字幕在线视频综合| 亚洲日本在线视频观看| 国产精品久久久久久久久免费相片 | 国产一区美女在线| 蜜臀91精品一区二区三区| 亚洲高清在线视频| 亚洲国产一区视频| 亚洲精品成人悠悠色影视| 国产精品美女一区二区三区| 久久久久高清精品| 久久精品欧美一区二区三区不卡| 精品国产欧美一区二区| 久久久久99精品一区| 国产三级精品视频| 国产精品天干天干在观线| 国产欧美精品一区aⅴ影院| 国产日本欧洲亚洲| 中文字幕第一区| 亚洲天天做日日做天天谢日日欢| 亚洲欧洲综合另类在线| 夜色激情一区二区| 五月激情六月综合| 另类人妖一区二区av| 国产做a爰片久久毛片| 国产99精品视频| 91在线观看下载| 欧美在线你懂得| 日韩亚洲欧美在线观看| 久久久亚洲午夜电影| 国产精品久久久久久久久免费丝袜| 最近日韩中文字幕| 午夜精品aaa| 久久国产精品无码网站| 丁香天五香天堂综合| 91免费观看国产| 欧美日韩高清一区二区不卡| 日韩视频在线观看一区二区| 中国色在线观看另类| 亚洲精品国产一区二区精华液| 亚洲va欧美va人人爽午夜| 久久国产人妖系列| www.亚洲免费av| 91麻豆精品久久久久蜜臀| 精品久久人人做人人爱| 亚洲人亚洲人成电影网站色| 天天免费综合色| 国产成人精品一区二区三区四区| 91免费看视频| 日韩欧美视频在线| 亚洲美女视频在线观看| 捆绑调教美女网站视频一区| 成人av网站免费观看| 欧美一区日韩一区| 亚洲欧美自拍偷拍色图| 日韩av在线免费观看不卡| 99久久久久久| 欧美一区二区三区精品| 国产精品久久久久一区| 久久国产三级精品| 91国在线观看| 欧美国产一区视频在线观看| 婷婷成人激情在线网| 成人午夜av在线| 日韩欧美一区二区免费| 一区二区三区蜜桃网| 国产精品伊人色| 欧美日韩国产小视频| 国产精品第四页| 国产一区二区伦理片| 欧美日韩国产综合一区二区三区 | 国产欧美日韩亚州综合| 午夜av区久久| 99久久国产免费看| 久久久精品国产免费观看同学| 亚洲国产日韩av| 成人免费观看男女羞羞视频| 日韩精品一区二区三区视频播放 | av一区二区三区四区| 久久综合九色综合欧美亚洲| 午夜久久久久久久久| 91麻豆高清视频| 欧美极品美女视频| 国产精一区二区三区| 日韩午夜激情av| 日韩精品亚洲专区| 欧美日韩国产一区| 亚洲福中文字幕伊人影院| 91免费视频网| 自拍偷拍国产精品| jvid福利写真一区二区三区| 国产精品网站在线| 国产高清精品久久久久| 久久久亚洲高清| 久久99热99| 欧美电影免费观看高清完整版在线 | 亚洲一区自拍偷拍| 97se亚洲国产综合自在线| 国产精品盗摄一区二区三区| 99久久亚洲一区二区三区青草| 国产精品热久久久久夜色精品三区| 国产馆精品极品| 国产精品欧美极品| 成人午夜看片网址| 国产精品伦理一区二区| k8久久久一区二区三区| 亚洲美女区一区| 欧美亚洲一区二区在线| 午夜精品福利久久久| 欧美一级生活片| 国产激情视频一区二区在线观看| 欧美电视剧在线看免费| 黄色日韩网站视频| 国产人妖乱国产精品人妖| 波多野结衣中文字幕一区| 综合在线观看色| 在线精品视频免费观看| 日韩精品福利网| 欧美va亚洲va在线观看蝴蝶网| 国内精品久久久久影院薰衣草 | 亚洲黄色片在线观看| 欧美性猛交xxxx黑人交| 日韩二区三区在线观看| 精品美女一区二区| www.欧美色图| 亚洲亚洲人成综合网络| 91精品久久久久久久91蜜桃| 国产精品综合二区| 亚洲精品一卡二卡| 日韩网站在线看片你懂的| 国产91精品免费| 亚洲图片自拍偷拍|