C++程序发送邮件可带附件


用C++编写的发送邮件的程序,很好用,可以包含邮件正文内容,还可以包含附件,功能强大。
资源截图
代码片段和文件信息
/* 
   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] = ‘‘;

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

 

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

     文件       3842  2016-05-21 15:04  CSmtp_v1_4ase64.cpp

     文件        190  2008-07-18 20:30  CSmtp_v1_4ase64.h

     文件      25068  2016-05-22 20:55  CSmtp_v1_4CSmtp.cpp

     文件       4511  2008-08-22 02:39  CSmtp_v1_4CSmtp.dsp

     文件        535  2008-08-20 14:05  CSmtp_v1_4CSmtp.dsw

     文件       3769  2009-03-05 15:04  CSmtp_v1_4CSmtp.h

     文件      41984  2009-03-05 15:11  CSmtp_v1_4CSmtp.ncb

     文件      48640  2009-03-05 15:11  CSmtp_v1_4CSmtp.opt

     文件       2274  2009-03-05 15:11  CSmtp_v1_4CSmtp.plg

     文件       7680  2016-09-03 21:59  CSmtp_v1_4CSmtp.v12.suo

     文件       6437  2016-05-21 14:55  CSmtp_v1_4CSmtp.vcxproj

     文件       1297  2016-05-21 14:53  CSmtp_v1_4CSmtp.vcxproj.filters

     文件     164481  2016-09-03 21:59  CSmtp_v1_4Debugase64.obj

     文件       1072  2016-05-22 20:55  CSmtp_v1_4DebugCSmtp.Build.CppClean.log

     文件     704000  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.exe

     文件    1722512  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.ilk

     文件      37214  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.log

     文件     507945  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.obj

     文件    3525632  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.pdb

     文件       7886  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.tlogcl.command.1.tlog

     文件     139014  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.tlogCL.read.1.tlog

     文件       3672  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.tlogCL.write.1.tlog

     文件        169  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.tlogCSmtp.lastbuildstate

     文件       6220  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.tloglink.command.1.tlog

     文件       8238  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.tloglink.read.1.tlog

     文件       2192  2016-09-03 21:59  CSmtp_v1_4DebugCSmtp.tloglink.write.1.tlog

     文件     175073  2016-09-03 21:59  CSmtp_v1_4Debugmain.obj

     文件    1805312  2016-09-03 21:59  CSmtp_v1_4Debugvc120.idb

     文件     495616  2016-09-03 21:59  CSmtp_v1_4Debugvc120.pdb

     文件       1150  2016-09-03 21:59  CSmtp_v1_4main.cpp

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)