⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendmsg.c

📁 邮件发送后向相应手机发送短信
💻 C
字号:
#include <stdio.h>#include <sys/stat.h>#include <errno.h>#include <string.h>#include "sms.h"extern char phone[256];extern char smsserver[256];extern unsigned short smsserverport;extern char program[256];extern char run[256];extern char progargs[256];char port[32];struct Run {  char *name;  char *value;};/* * Prepend the escape character before all non-alpha or digit characters. */static char *escape(char *input){  struct Push buf;  char *string=NULL;  INIT_PUSH(buf);  while (input && *input) {    if((*input != ' ') && !isalnum((int)*input) )      PushByte(&buf, '\\');    string = PushByte(&buf, *input);    input++;  };  return string;};int smsit(char *message){  if(strlen(run)) {    struct Push buf;    char *out;    int i;    FILE *runit;    struct Run vars[]={      {"program", program},      {"server", smsserver},      {"port", port},      {"phone", phone},      {"progargs", progargs},      {"message", message},    };          INIT_PUSH(buf);    sprintf(port, "%d", smsserverport);    out = run;    while(*out) {      if('$' == *out) {	out++;	for(i=0; i<sizeof(vars)/sizeof(vars[0]); i++) {	  if(!strncasecmp(vars[i].name, 			  out,			  strlen(vars[i].name))) {            /* escape all characters possibly sensitive when sent to popen() */            char *str = escape(vars[i].value);	    PushString(&buf, str);	    out+= strlen(vars[i].name);	    i=0;	    break;	  }	}	if(i)	  PushByte(&buf, '$');      }      else	PushByte(&buf, *out++);    }    out = PUSH_STRING(buf);    runit = popen(out, "w");    if(runit) {      fwrite(message, strlen(message), 1, runit);      pclose(runit); /* close program again */      logf(LOGF_DEBUG, "(cmd in): %s\n", run);      logf(LOGF_DEBUG, "(cmd run): %s\n", out);    }    else      logf(LOGF_ERROR, "can't run command: \"%s\"\n", run);  }  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -