Skip to content
Snippets Groups Projects
Select Git revision
  • dd_msg_reader_list_personal_email_in_reverse_choose_msg_fix
  • dailybuild_linux-x64
  • dailybuild_win32
  • master default protected
  • sqlite
  • rip_abstraction
  • dailybuild_macos-armv8
  • dd_file_lister_filanem_in_desc_color
  • mode7
  • dd_msg_reader_are_you_there_warning_improvement
  • c23-playing
  • syncterm-1.3
  • syncterm-1.2
  • test-build
  • hide_remote_connection_with_telgate
  • 638-can-t-control-c-during-a-file-search
  • add_body_to_pager_email
  • mingw32-build
  • cryptlib-3.4.7
  • ree/mastermind
  • sbbs320d
  • syncterm-1.6
  • syncterm-1.5
  • syncterm-1.4
  • sbbs320b
  • syncterm-1.3
  • syncterm-1.2
  • syncterm-1.2rc6
  • syncterm-1.2rc5
  • push
  • syncterm-1.2rc4
  • syncterm-1.2rc2
  • syncterm-1.2rc1
  • sbbs319b
  • sbbs318b
  • goodbuild_linux-x64_Sep-01-2020
  • goodbuild_win32_Sep-01-2020
  • goodbuild_linux-x64_Aug-31-2020
  • goodbuild_win32_Aug-31-2020
  • goodbuild_win32_Aug-30-2020
40 results

bulkmail.js

Blame
  • bulkmail.js 1.86 KiB
    // bulkmail.js
    
    // Bulk email all users that match AR String input
    
    // written by the hanged man, Solace BBS, solace.synchro.net
    
    load("sbbsdefs.js");
    
    const REVISION = "$Revision: 1.6 $".split(' ')[1];
    
    print("Synchronet BulkMailer " + REVISION);
    
    print("Enter ARS matches to send mail to or [ENTER] for everyone");
    
    printf("ARS to match: "); 
    if((ars=console.getstr(40,K_UPPER))==undefined)
    	exit();
    
    printf("\r\n\1y\1hSubject: ");
    
    if((subj=console.getstr(70,K_LINE))=="")
    	exit();
    
    fname = system.temp_dir + "bulkmsg.txt";
    
    file_remove(fname)
    
    console.editfile(fname);
    
    if(!file_exists(fname))	// Edit aborted
    	exit();
    
    file = new File(fname);
    if(!file.open("rt")) {
        log(LOG_ERR,"!ERROR " + errno_str + " opening " + fname);
        exit();
    }
    msgtxt = lfexpand(file.read(file_size(fname)));
    file.close();
    delete file;
    
    if(msgtxt == "")
        exit();
    
    msgbase = new MsgBase("mail");
    if(msgbase.open()==false) {
    	log(LOG_ERR,"!ERROR " + msgbase.last_error);
    	exit();
    }
    
    var u;	// user object
    
    lastuser=system.lastuser;
    
    var sent=0;
    var rcpt_list=new Array();
    
    for(i=1; i<=lastuser; i++)
    {
        u = new User(i);
    
    	if(u.settings&(USER_DELETED|USER_INACTIVE))
    		continue;
    
        if(!u.compare_ars(ars))
    		continue;
    
    	/*checking for netmail forward */
    	if(u.settings&USER_NETMAIL && u.netmail.length)
    		hdr = { to_net_addr: u.netmail, to_net_type: netaddr_type(u.netmail) };
    	else
    		hdr = { to_ext: String(u.number) };
    	
    	hdr.to = u.alias;
    	rcpt_list.push(hdr);
    
    	printf("Sending mail to %s #%u\r\n", u.alias, i);
    	log(format("Sending bulk mail message to: %s #%u", u.alias, i));
    	sent++;
    }
    
    hdr = { from: system.operator, from_ext: "1", subject: subj };  
    
    if(!msgbase.save_msg(hdr, msgtxt, rcpt_list))
    	log(LOG_ERR,"!ERROR " + msgbase.last_error + "saving bulkmail message");
    
    msgbase.close();
    
    if(sent>1) {
    	print("Sent bulk mail to " + sent + " users");
    	log("Sent bulk mail message to " + sent + " users");
    }