资源简介
/*
* 使用规则:
* 可以发送带附件的邮件,附件大小限制由发送方服务器而定,暂未测试具体为多少MB
* 附件可以是多个
* 邮件内容和主题可以是空,但当有附件时,主题取第一个附件的文件名(不含扩展名)
* 密码验证均为base64加密
* 邮件正文和附件的数据传送方式,均为base64
* 自动解析发件箱的SMTP服务器
*/
支持windows系统,linux系统。
上一版本的更新版。
详细情况件压缩包的readme
代码片段和文件信息
#include
#include
#include “mybase.h“
#include “mymail.h“
#ifdef WINDOWS
#include
#include
#endif
#ifdef LINUX
#include
#endif
char mailfrom[MAILFROM+1];
char mailpass[PASSWDLEN+1];
char mailsubj[MAILSUBJ+1];
char mailtime[MAILTIME+1];
char mailmark[MAXMARKLEN];
char mailaddr[MAILADDR+1];
char mailto[MAXTOLEN+1];
char charset[20+1];
char contype[20+1];
char mailatt[MAX_PATH*MAXATTNUM+1];
char cfgfile[MAX_PATH+1];
char *mailbody=NULL;
/*是否增加时间标志*/
int markflag=0;
/* 从文件读取邮件接收者的信息,以分号为间隔放在mailto中 参数为文件路径 */
int GetMailToFromFile(char *filename)
{
char bufline[150];
FILE *fp;
trim(filename);
fp=fopen(filename“r“);
if(fp==NULL)
{
printf(“MailTo文件打开失败无法读取收件人地址!%s\n“filename);
WriteLog(LOGLVL“MailTo File Open Err! [%s]“filename);
return -1;
}
WriteLog(LOGLVL“MailTo File Open OK! [%s]“filename);
memset(mailto0x00sizeof(mailto));
while(!feof(fp))
{
readstr(buflinefp);
trim(bufline);
WriteLog(LOGLVL“bufline is [%s]“bufline);
if(strlen(bufline)==0)
{
WriteLog(LOGLVL“NULL Line“);
continue;
}
else if (bufline[0]==‘#‘)
{
WriteLog(LOGLVL“The Line Doesn‘t In Plan[%s]“bufline);
continue;
}
else
{
if((strlen(mailto)+strlen(bufline)+1) {
strcat(mailtobufline);
strcat(mailto“;“);
}
else break;
}
}
fclose(fp);
trim(mailto);
if(strlen(mailto)==0)
{
printf(“MailTo文件中无有效的收件人地址!%s\n“filename);
WriteLog(LOGLVL“There Doesn‘t Have Effectively MailTo In File! [%s]“filename);
return -1;
}
WriteLog(LOGLVL“Get Effectively MailTo From File OK!“);
return 0;
}
/* 从文件读取邮件内容信息,放在mailbody中 参数为文件路径 */
int GetMailBodyFromFile(char *filename)
{
int filelen=0;
FILE *fp;
trim(filename);
fp=fopen(filename“r“);
if(fp==NULL)
{
printf(“MailBody文件打开失败无法读取邮件正文!%s\n“filename);
WriteLog(LOGLVL“MailBody File Open Err! [%s]“filename);
return -1;
}
WriteLog(LOGLVL“MailBody File Open OK! [%s]“filename);
fseek(fp0SEEK_END);
filelen=ftell(fp);
if(filelen==0)
{
WriteLog(LOGLVL“MailBody file [%s] is NULL.“filename);
return 0;
}
fseek(fp0SEEK_SET);
mailbody=NULL;
Malloc(mailbodycharfilelen+1);
fread(mailbody1filelenfp);
fclose(fp);
if(strlen(mailbody)==0)
{
printf(“MailBody文件中无邮件正文!%s\n“filename);
WriteLog(LOGLVL“There Doesn‘t Have Content In MailBody File! [%s]“filename);
return -1;
}
WriteLog(LOGLVL“Get MailBody From File OK!“);
return 0;
}
/* 显示帮助 */
int ShowHelp()
{
printf(“Send email to one or more mail receivers\n\n“);
printf(“MAIL [-F FROM -P PWD]/[-C:ACCOUNT] [-T TO1[;...TOn]]/[-TO TOFILE]/[-T:TOACCOUNT1[;...TOACCOUNTn]]\n“);
printf(“ [-S SUBJECT] [-B BODY/-BODY BODYFILE] [[-A ATTACHFILE1]...[-A ATTACHFILEn]]\n“);
printf(“ [-MARK] [-CODE VALUE] [-TYPE VALUE]\n\n“);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 25000 2013-03-19 12:55 mail\code\mail.c
文件 525 2013-03-23 09:18 mail\code\makefile
文件 493 2013-03-23 09:46 mail\etc\mail.cfg
文件 302 2013-03-23 09:49 mail\etc\moontalk.cfg
文件 9662 2013-02-04 11:18 mail\icon\mail.ico
文件 8983 2013-03-23 10:57 mail\include\myba
文件 3602 2013-03-19 19:36 mail\include\mymail.h
文件 100611 2013-03-19 21:11 mail\lib\ba
文件 28068 2013-03-19 19:35 mail\lib\mail.c
文件 572 2013-03-23 11:24 mail\lib\makefile
文件 22 2013-02-04 10:45 mail\rc\mail.rc
文件 325 2013-03-23 09:36 mail\rc\makefile
文件 5259 2013-03-23 10:57 mail\ReadMe.txt
目录 0 2013-03-23 11:24 mail\bin
目录 0 2013-03-23 11:23 mail\code
目录 0 2013-03-23 11:22 mail\etc
目录 0 2013-03-23 11:22 mail\icon
目录 0 2013-03-23 11:24 mail\include
目录 0 2013-03-23 11:24 mail\lib
目录 0 2013-03-23 09:45 mail\log
目录 0 2013-03-23 11:22 mail\rc
目录 0 2013-03-23 09:45 mail\res
目录 0 2013-03-23 09:49 mail
----------- --------- ---------- ----- ----
183424 23
相关资源
- Windows下纯C语言Socket、smtp发送邮件,
- 邮票问题C语言源码
- 数据结构遍历二叉树算法C语言版(附
- Buddy算法C语言实现
- opencv+vs 实现画中画 c语言
- 彩屏显示 c语言
- c语言课程设计-职工工资管理系统
- 7段数码管动态显示proteus仿真电路及
- 进程调度 时间片轮转调度算法源代码
- 汉明码的编码译码的C语言实现
- Hough变换 C 语言实现
- 状态转换图c语言编译原理
- FFT算法的c语言实现
- n个数冒泡排序法
- C语言课程设计文本编辑器
- 数据结构大作业(C语言)实验报告
- 游程编码C语言实现
- 基于89C51的0-99秒表计8个成绩电路图和
- 最速下降法c语言实现
- 优先级和时间片轮转调度实验算法c语
- 计网实验 数据链路层实验 源代码 C语
- 有限元的C语言实现计算
- 用C语言实现的的全部的古典密码学算
- c语言实现稀疏矩阵的加减乘,转置
- RSA算法C语言程序
- C语言试题库适合高职院校学生使用
- 智能电梯完整c程序
- 汉诺塔非递归算法 用栈 C语言
- C语言编写的扫雷exe文件,附排行榜
- 可变窗口的SAD相关匹配C语言程序
评论
共有 条评论