• 大小: 1.71MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-14
  • 语言: C/C++
  • 标签: CSmtp  发送邮件  

资源简介

这是一个由老外写的比较新的发送邮件的项目CSmtp,使用VS2008编译,经测试,常用的163、QQ、126、sohu、outlook都支持,唯独163发送到QQ会失败

资源截图

代码片段和文件信息

/* 
   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]);

 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-08-13 16:47  CSmtp_v2.4\
     文件       17536  2013-08-17 11:22  CSmtp_v2.4\Article Source.htm
     文件        3844  2008-08-18 14:23  CSmtp_v2.4\base64.cpp
     文件         190  2008-07-18 20:30  CSmtp_v2.4\base64.h
     文件       76597  2015-10-22 21:28  CSmtp_v2.4\CSmtp.cpp
     文件        7298  2015-10-22 20:47  CSmtp_v2.4\CSmtp.h
     文件         875  2018-08-13 16:46  CSmtp_v2.4\CSmtp.sln
     文件        6541  2018-08-13 16:46  CSmtp_v2.4\CSmtp.vcproj
     文件        1652  2012-11-03 23:20  CSmtp_v2.4\main.cpp
     文件       13673  2013-03-08 23:47  CSmtp_v2.4\md5.cpp
     文件        4441  2010-08-14 21:57  CSmtp_v2.4\md5.h
     目录           0  2013-07-10 22:31  CSmtp_v2.4\openssl-0.9.8l\
     目录           0  2013-07-10 22:31  CSmtp_v2.4\openssl-0.9.8l\inc32\
     目录           0  2013-07-10 22:31  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\
     文件        5682  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\aes.h
     文件       48773  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\asn1.h
     文件       28073  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\asn1t.h
     文件       18956  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\asn1_mac.h
     文件       30822  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\bio.h
     文件        5173  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\blowfish.h
     文件       33562  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\bn.h
     文件        4565  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\buffer.h
     文件        4453  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\cast.h
     文件        1978  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\comp.h
     文件        9484  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\conf.h
     文件        4080  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\conf_api.h
     文件       24217  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\crypto.h
     文件       10736  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\des.h
     文件       18238  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\des_old.h
     文件        8654  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\dh.h
     文件       11674  2010-01-08 11:59  CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\dsa.h
............此处省略55个文件信息

评论

共有 条评论