home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / WWIVMODS / PRE412.ZIP / MAILALL.MOD < prev    next >
Text File  |  1992-01-21  |  5KB  |  188 lines

  1.                                 MultiMail to All
  2.                                  (MAILALL.MOD)
  3.  
  4.                                   Version 2.0
  5.                                        by
  6.                                 Ethereal Cereal
  7.  
  8.  
  9. I've been asked by a few of the visiting sysops on my system to release my
  10. multimail to all users mod.  This one is pretty easy to install, but I'm sure
  11. there are better ways to go about it.  For example, it will continuously ask
  12. you for a title.  Anyhow it does work.
  13.  
  14. As usual with most of these mods, the author (me) takes no resposibility
  15. what-so-ever if this mod causes your cat to jump on your keyboard and
  16. delete every user you have or if your modem decides it doesn't like you
  17. and fries itself, committing datacide...
  18.  
  19. ───────────────────────────────────────────────────────────────────────────────
  20.  
  21.                               Crispy Software #5
  22.                               Ethereal Cereal #16
  23.  
  24.         Multi-Networked     The Downtown Tower       Multi-Lined (soon)
  25.        Home of CrispySoft  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀      WWIV On A LAN (Host)
  26.          618-234-6892         WWIVlink: @16853       USR Dual Standard
  27.          Sysop Autoval        FredNET : @6888        700+ WWIV Files Online
  28.          WL2SP Support        WWIVnet : @6866        Snarfable!
  29.                   More Fun Than A Normal Human Being Can Stand
  30. ───────────────────────────────────────────────────────────────────────────────
  31.  
  32. /***********************/
  33. /*     L E G E N D     */
  34. /***********************/
  35. /* - = Deleted Line    */
  36. /* + = New Line        */
  37. /* # = Existing Line   */
  38. /* ! = Modified Line   */
  39. /* * = Search For Line */
  40. /***********************/
  41.  
  42.  
  43.  
  44. Step #1  -- MULTMAIL.C
  45. Function -- N/A
  46. Comments --  add this function
  47.  
  48. void mailall()
  49. /* MOD -- MAILALL.MOD v2.  Allows you to Multimail ALL users on the system */
  50. {
  51.   int i,i1,f,len,an,cv,ok;
  52.   mailrec m,m1;
  53.   char s[81],s1[81],t[81];
  54.   userrec ur;
  55.   slrec ss;
  56.  
  57.   if (freek1(syscfg.msgsdir)<10.0) {
  58.     nl();
  59.     pl("Sorry, not enough disk space left.");
  60.     nl();
  61.     return;
  62.   }
  63.   nl();
  64.   sprintf(s,"%sEMAIL.DAT",syscfg.datadir);
  65.   ss=syscfg.sl[actsl];
  66.  
  67.   if (ss.ability & ability_email_anony)
  68.     i=anony_enable_anony;
  69.   else
  70.     i=0;
  71.   m.msg.storage_type=EMAIL_STORAGE;
  72.   strcpy(irt,"Mail to ALL Users");
  73.   irt_name[0]=0;
  74.   inmsg(&m.msg,t,&i,1,"EMAIL",ALLOW_FULLSCREEN);
  75.   if (m.msg.stored_as==0xffffffff)
  76.     return;
  77.   strcpy(m.title,t);
  78.   m.anony=i;
  79.   m.fromsys=0;
  80.   m.fromuser=usernum;
  81.   m.tosys=0;
  82.   m.touser=0;
  83.   m.status=status_multimail;
  84.   time((long *)&(m.daten));
  85.   f=open(s,O_RDWR | O_BINARY | O_CREAT, S_IREAD | S_IWRITE);
  86.   len=(int) filelength(f)/sizeof(mailrec);
  87.   if (len==0)
  88.     i=0;
  89.   else {
  90.     i=len-1;
  91.     lseek(f,((long) (i))*(sizeof(mailrec)), SEEK_SET);
  92.     read(f,(void *)&m1,sizeof(mailrec));
  93.     while ((i>0) && (m1.tosys==0) && (m1.touser==0)) {
  94.       --i;
  95.       lseek(f,((long) (i))*(sizeof(mailrec)), SEEK_SET);
  96.       i1=read(f,(void *)&m1,sizeof(mailrec));
  97.       if (i1==-1)
  98.         pl("DIDN'T READ RIGHT.");
  99.     }
  100.     if ((m1.tosys) || (m1.touser))
  101.       ++i;
  102.   }
  103.   lseek(f,((long) (i))*(sizeof(mailrec)), SEEK_SET);
  104.   pl("Mail sent to:");
  105.   sysoplog("Multi-Mail sent to all users . . .");
  106.  
  107.   for (cv=0; cv<status.users; cv++) {
  108.     read_user(smallist[cv].number,&ur);
  109.     ok=1;
  110.     if (((ur.sl==255) && (ur.waiting>(syscfg.maxwaiting * 5))) ||
  111.         ((ur.sl!=255) && (ur.waiting>syscfg.maxwaiting)) ||
  112.         (ur.waiting>200)) {
  113.       sprintf(s,"%s  mailbox full, not sent.",nam(&ur,smallist[cv].number));
  114.       sysoplog(s);
  115.       npr(s);
  116.       nl();
  117.       ok=0;
  118.     }
  119.     if (ur.inact & inact_deleted) {
  120.       sprintf(s,"User #%d deleted, not sent.",smallist[cv].number);
  121.       sysoplog(s);
  122.       npr(s);
  123.       nl();
  124.       ok=0;
  125.     }
  126.  
  127.     if (ok) {
  128.       m.touser=smallist[cv].number;
  129.       write(f,(void *)&m,sizeof(mailrec));
  130.       strcpy(s,"   ");
  131.       ++ur.waiting;
  132.       write_user(smallist[cv].number,&ur);
  133.       if (smallist[cv].number==1)
  134.         ++fwaiting;
  135.       strcat(s,nam(&ur,smallist[cv].number));
  136.       if (smallist[cv].number==1)  {
  137.         ++status.fbacktoday;
  138.         ++thisuser.feedbacksent;
  139.         ++thisuser.fsenttoday1;
  140.         ++fsenttoday;
  141.       } else {
  142.         ++status.emailtoday;
  143.         ++thisuser.etoday;
  144.         ++thisuser.emailsent;
  145.       }
  146.       pl(s);
  147.     }
  148.   }
  149.   close_user();
  150.   close(f);
  151.   save_status();
  152.   if (!wfc)
  153.     topscreen();
  154. }
  155.  
  156.  
  157. Step #2  -- MULTMAIL.C
  158. Function -- N/A
  159. Comments --
  160.  
  161.         Modify this line...
  162.  
  163. #    nl();
  164. +    if (so()) {
  165. +      prt(2,"Multi-Mail: A,M,D,L,E,Q,S,? : ");
  166. +      ch=onek("QAMDELS?");
  167. +    } else {
  168. #      prt(2,"Multi-Mail: A,M,D,L,E,Q,? : ");
  169. #      ch=onek("QAMDEL?");
  170. +    }
  171. #    switch(ch) {
  172. #      case '?':
  173.  
  174. Step #3  -- MULTMAIL.C
  175. Function -- N/A
  176. Comments --
  177.  
  178.         Add this case in with the others...
  179.  
  180.       case 'S':
  181.        mailall();
  182.        break;
  183.  
  184.  
  185.  
  186. ════WWIV═4.11═Etherealized══════════════════════════The Downtown Tower═════════
  187. 600+ WWIV Files!!! -*- WWIVLink @16853 -*- USR Dual Standard -*- Sysop Autoval
  188.