资源简介

C++邮箱实现直接可用(@qq,@163)类函数丰富,使用openssl,vs2013测试通过,不同邮箱需更改服务器。

资源截图

代码片段和文件信息

/* 
   base64.cpp and base64.h

   Copyright (C) 2004-2008 Ren?Nyffenegger

   This source code is provided ‘as-is‘ without any express or implied
   warranty. In no event will the author be held liable for any damages
   arising from the use of this software.

   Permission is granted to anyone to use this software for any purpose
   including commercial applications and to alter it and redistribute it
   freely subject to the following restrictions:

   1. The origin of this source code must not be misrepresented; you must not
      claim that you wrote the original source code. If you use this source code
      in a product an acknowledgment in the product documentation would be
      appreciated but is not required.

   2. Altered source versions must be plainly marked as such and must not be
      misrepresented as being the original source code.

   3. This notice may not be removed or altered from any source distribution.

   Ren?Nyffenegger rene.nyffenegger@adp-gmbh.ch

*/

#include “base64.h“
#include 

static const std::string base64_chars = 
             “ABCDEFGHIJKLMNOPQRSTUVWXYZ“
             “abcdefghijklmnopqrstuvwxyz“
             “0123456789+/“;


static inline bool is_base64(unsigned char c) 
{
  return (isalnum(c) || (c == ‘+‘) || (c == ‘/‘));
}

std::string base64_encode(unsigned char const* bytes_to_encode unsigned int in_len) 
{
  std::string ret;
  int i = 0 j = 0;
  unsigned char char_array_3[3] char_array_4[4];

  while (in_len--)
{
    char_array_3[i++] = *(bytes_to_encode++);
    if (i == 3) 
{
      char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
      char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
      char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
      char_array_4[3] = char_array_3[2] & 0x3f;

      for(i = 0; (i <4) ; i++)
        ret += base64_chars[char_array_4[i]];
      i = 0;
    }
  }

  if (i)
  {
    for(j = i; j < 3; j++)
      char_array_3[j] = ‘\0‘;

    char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
    char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
    char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
    char_array_4[3] = char_array_3[2] & 0x3f;

    for (j = 0; (j < i + 1); j++)
      ret += base64_chars[char_array_4[j]];

    while((i++ < 3))
      ret += ‘=‘;

  }

  return ret;

}

std::string base64_decode(std::string const& encoded_string) 
{
  int in_len = encoded_string.size();
  int i = 0 j = 0 in_ = 0;
  unsigned char char_array_4[4] char_array_3[3];
  std::string ret;

  while (in_len-- && ( encoded_string[in_] != ‘=‘) && is_base64(encoded_string[in_])) 
{
    char_array_4[i++] = encoded_string[in_]; in_++;
    if (i ==4) {
      for (i = 0; i <4; i++)
        char_array_4[i] = base64_chars.find(char_array_4[i]);

 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      17536  2013-08-17 11:22  CSmtp_v2_4_ssl-直接可用@qq\Article Source.htm

     文件        874  2010-08-09 13:32  CSmtp_v2_4_ssl-直接可用@qq\Backup\CSmtp.sln

     文件       3844  2008-08-18 14:23  CSmtp_v2_4_ssl-直接可用@qq\base64.cpp

     文件        190  2008-07-18 20:30  CSmtp_v2_4_ssl-直接可用@qq\base64.h

     文件      76596  2017-02-28 13:44  CSmtp_v2_4_ssl-直接可用@qq\CSmtp.cpp

     文件       7298  2015-10-22 20:47  CSmtp_v2_4_ssl-直接可用@qq\CSmtp.h

     文件   38338560  2017-03-02 14:35  CSmtp_v2_4_ssl-直接可用@qq\CSmtp.sdf

     文件        955  2017-02-28 11:41  CSmtp_v2_4_ssl-直接可用@qq\CSmtp.sln

    ..A..H.     17920  2017-03-02 14:35  CSmtp_v2_4_ssl-直接可用@qq\CSmtp.v12.suo

     文件       6477  2010-08-20 20:26  CSmtp_v2_4_ssl-直接可用@qq\CSmtp.vcproj

     文件       7238  2017-02-28 11:41  CSmtp_v2_4_ssl-直接可用@qq\CSmtp.vcxproj

     文件       1475  2017-02-28 11:41  CSmtp_v2_4_ssl-直接可用@qq\CSmtp.vcxproj.filters

     文件     141050  2017-02-28 11:42  CSmtp_v2_4_ssl-直接可用@qq\Debug\base64.obj

     文件    2202624  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.exe

     文件    5547784  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.ilk

     文件       1470  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.log

     文件     708761  2017-02-28 14:29  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.obj

     文件    9342976  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.pdb

     文件       3026  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\cl.command.1.tlog

     文件      98526  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\CL.read.1.tlog

     文件       3092  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\CL.write.1.tlog

     文件        178  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\CSmtp.lastbuildstate

     文件       1482  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\link.command.1.tlog

     文件       3764  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\link.read.1.tlog

     文件        862  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\link.write.1.tlog

     文件     219460  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\main.obj

     文件     287653  2017-02-28 11:42  CSmtp_v2_4_ssl-直接可用@qq\Debug\md5.obj

     文件    1182720  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\vc120.idb

     文件     544768  2017-02-28 14:47  CSmtp_v2_4_ssl-直接可用@qq\Debug\vc120.pdb

     文件       1877  2017-03-02 14:30  CSmtp_v2_4_ssl-直接可用@qq\main.cpp

............此处省略85个文件信息

评论

共有 条评论