匿名用户

1级

2008-04-07 回答

#include "stdafx.h"

#include "MailMessage.h"

#ifdef _DEBUG

#undef THIS_FILE

static char THIS_FILE[]=__FILE__;

#define new DEBUG_NEW

#endif

//

// Construction/Destruction

//

CMailMessage::CMailMessage()

{

m_sBody=_T("");

m_sHeader=_T("");

}

CMailMessage::~CMailMessage()

{

}

//将收件人地址加到m_Recipients数组中

BOOL CMailMessage::AddRecipient( LPCTSTR szEmailAddress, LPCTSTR szFriendlyName)

{

ASSERT( szEmailAddress != NULL );

ASSERT( szFriendlyName != NULL );

CRecipient to;

to.m_sEmailAddress = szEmailAddress;

to.m_sFriendlyName = szFriendlyName;

m_Recipients.Add( to );

return TRUE;

}

//从类CRecipient中提取收信人地址

BOOL CMailMessage::GetRecipient(CString & sEmailAddress, CString & sFriendlyName, int nIndex)

{

CRecipient to;

if( nIndex < 0 || nIndex > m_Recipients.GetUpperBound() )

return FALSE;

to = m_Recipients[ nIndex ];

sEmailAddress = to.m_sEmailAddress;

sFriendlyName = to.m_sFriendlyName;

return TRUE;

}

//确定收信人数

int CMailMessage::GetNumRecipients()

{

return m_Recipients.GetSize();

}

//收信人地址->数组m_Recipients

BOOL CMailMessage::AddMultipleRecipients(LPCTSTR szRecipients )

{

TCHAR* buf;

UINT pos;

UINT start;

CString sTemp;

CString sEmail;

CString sFriendly;

UINT length;

int nMark;

int nMark2;

ASSERT( szRecipients != NULL );

length = strlen( szRecipients );

buf = new TCHAR[ length + 1 ];

strcpy( buf, szRecipients );

for( pos = 0, start = 0; pos <= length; pos++ )

{

if( buf[ pos ] == ';' ||

buf[ pos ] == 0 )

{

buf[ pos ] = 0;

sTemp = &buf[ start ];

nMark = sTemp.Find( '= 0 )

{

sFriendly = sTemp.Left( nMark );

nMark2 = sTemp.Find( '>' );

if( nMark2 < nMark )

{

delete[] buf;

return FALSE;

}

nMark2 > -1 ? nMark2 = nMark2 : nMark2 = sTemp.GetLength() - 1;

sEmail = sTemp.Mid( nMark + 1, nMark2 - (nMark + 1) );

}

else

{

sEmail = sTemp;

sFriendly = _T( "" );

}

AddRecipient( sEmail, sFriendly );

start = pos + 1;

}

}

delete[] buf;

return TRUE;

}

//发信前格式化邮件

void CMailMessage::FormatMessage()

{

start_header();

prepare_header();

end_header();

prepare_body();

}

//格式化标头

void CMailMessage::prepare_header()

{

CString sTemp;

sTemp = _T( "" );

sTemp = _T( "寄信人地址: " ) + m_sFrom;

add_header_line( (LPCTSTR)sTemp );

sTemp = _T( "收信人地址: " );

CString sEmail = _T( "" );

CString sFriendly = _T( "" );

for( int i = 0; i < GetNumRecipients(); i++ )

{

GetRecipient( sEmail, sFriendly, i );

sTemp += ( i > 0 ? _T( "," ) : _T( "" ) );

sTemp += sFriendly;

sTemp += _T( "" );

}

add_header_line( (LPCTSTR)sTemp );

// 日期

m_tDateTime = m_tDateTime.GetCurrentTime();

sTemp = _T( "日期: " );

sTemp += m_tDateTime.Format( "%a, %d %b %y %H:%M:%S %Z" );

add_header_line( (LPCTSTR)sTemp );

sTemp = _T( "主题: " ) + m_sSubject;

add_header_line( (LPCTSTR)sTemp );

}

//邮件体格式化

void CMailMessage::prepare_body()

{

// 需要时,添加CR/LF

if( m_sBody.Right( 2 ) != _T( "\r\n" ) )

m_sBody += _T( "\r\n" );

}

//准备格式化标头

void CMailMessage::start_header()

{

m_sHeader = _T( "" );

}

//结束标头格式化

void CMailMessage::end_header()

{

m_sHeader += _T( "\r\n" );

}

//增加项到标头

void CMailMessage::add_header_line(LPCTSTR szHeaderLine)

{

CString sTemp;

sTemp.Format( _T( "%s\r\n" ), szHeaderLine );

m_sHeader += sTemp;

}

c语言创建通讯录不用指针,用C语言做通讯录,只能用数组,不能用指针,急用啊,谢谢了...相关推荐

  1. c语言创建线程代码,如何用C语言实现多线程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Windows操作系统,C语言实现多线程: #include #include DWORD APIENTRY ThreadOne ( LPVOID thr ...

  2. 网页文件是用html语言创建的文本文件,HTML超文本标记语言,用它编写的文件(文档)的扩展名是.ppt...

    HTML 超文本标记语言,用它编写的文件(文档)的扩展名是.html或.htm 网站首页的主文件名:Index,Default HTML是一个标准的ASCII文件 HTML语言使用标记对,标记名> ...

  3. c语言创建链表存储10个数,C语言编写的建立单向int链表,连续输入10个结点创建链表,并实现在原链表中插入数字、删除数字、查找数字的功能...

    满意答案 1bz8z1f96 2014.07.01 采纳率:54%    等级:9 已帮助:565人 #include #include #define LEN sizeof(struct num) ...

  4. C语言创建学生姓名分数链表,C语言编程 编写程序,建立一个学生数据链表,学生的数据包括学号、姓名、成绩。...

    满意答案 w6611826 2013.04.19 采纳率:50%    等级:11 已帮助:10597人 #include #include #define NULL 0 struct stud { ...

  5. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  6. 【C 语言】数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )

    文章目录 前言 一.数组符号 [] 与 指针 * 符号 使用效果 基本等价 二.数组首地址 与 指针 本质区别 前言 参考 [C 语言]指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方 ...

  7. Python 语言创建 HyerMesh Tcl 命令流

    目 录 Blog Links 一.前言 二.Tcl 命令 2.1 帮助文档 2.2 命令窗口 2.3 运行脚本 2.4 基本语法 三.模型组件 四.几何模型 4.1 几何点/Point 4.2 几何线 ...

  8. Python 语言创建 SAP2000 s2k 文件

    目 录 Blog Links 一.前言 二.s2k文件数据库 2.1 数据库结构 2.2 默认Table的创建 三.属性 3.1 材料属性 3.2 框架截面 3.3 板壳截面 3.4 实体截面 四.对 ...

  9. C语言中数组变量和指针变量

    指针变量为什么需要类型? 数组变量和指针变量在使用sizeof时不同,sizeof(数组变量)是数组长度,sizeof(指针变量)是存储int的字节长度4或者8(64bit). 数组变量在参数传递中, ...

  10. c语言程序设计 第三版 哈工大,C语言程序设计_哈工大(3):字符串指针.pdf

    圳 职 业 技 术 学 院Shenzhen Polytechnic 七单元(3):字符串指针 教学内容 字符串的指针和指向字符串的指针变量 教学目标 应知 字符串可以用字符数组和字符指针表示 应会 用 ...

最新文章

  1. 微服务架构的优势与不足(三)
  2. 电气期刊论文实现:考虑斜坡约束、开停机时间约束的电力机组组合(程序讲解)
  3. Boost.MultiIndex 复合键的例子
  4. 未能分析从服务器收到的消息,WebSocket Javascript客户端未收到来自服务器的消息...
  5. 数学狂想曲(三)——统计杂谈, PID算法, 20世纪10大算法, 矩阵向量的积
  6. Hive分析窗口函数 NTILE,ROW_NUMBER,RANK,DENSE_RANK
  7. loadrunner基础学习笔记二
  8. 如何在Mac 上的“终端”中限制回滚行数?
  9. Substrings (C++ find函数应用)
  10. week15-作业题--字符串(hash、字典树、KMP)
  11. Word插入脚注只占左下角一栏的方法
  12. vm虚拟机开启蓝屏问题
  13. IDEA编译错误PersistentEnumerator storage corrupted
  14. Ios常用第三方动画框架(三)
  15. Python 人工智能:16~20
  16. 【阿里云·云原生架构】白皮书 —— 云原生架构原则
  17. 婴儿脸上起湿疹吃什么好
  18. html测试工具手机版,SP META Tool(手机测试工具)
  19. Pippo已经不能只用超级来形容了
  20. 已经开发好的网站,进行多语言支持

热门文章

  1. java图片色阶调整、亮度调整
  2. 【nand2tetris实验0】windows找不到文件javaw的解决办法
  3. vivado2018.3和modelsim10.6d进行联合仿真
  4. 获取连接无线路由客户机信息命令
  5. 我用VS2015 开发webapp (1) 需求、目的、配置
  6. linux 路由添加
  7. VMWare workstation Pro 14 For Linux key
  8. The First Python man in Github
  9. 微信小程序——获取具体地理位置信息
  10. ORACLE 制定时间 加N月