mirror of
				https://github.com/gnh1201/welsonjs.git
				synced 2025-10-31 04:51:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			110 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| //////////////////////////////////////////////////////////////////////////////////
 | |
| //
 | |
| //	sendmail.js
 | |
| //
 | |
| //	Sendmail using either CDO or Persits.MailSender
 | |
| //
 | |
| /////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| /////////////////////////////////////////////////////////////////////////////////
 | |
| // Private APIs / Utility functions
 | |
| /////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| var usePersitsMailSender = false;
 | |
| var useSSL = false;
 | |
| 
 | |
| /////////////////////////////////////////////////////////////////////////////////
 | |
| // Send Mail Message
 | |
| /////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| function sendmail(msg) {
 | |
|     var ok, MAIL;
 | |
| 
 | |
|     console.log("SENDMAIL: " + msg.To);
 | |
| 
 | |
|     // Which method we use depends on the system.  On some versions of
 | |
|     // Persits.MailSender it does not support adding of Message-ID
 | |
|     // so we have to use CDO (which is the preferred option anyway).
 | |
|     if (exports.usePersitsMailSender) {
 | |
| 
 | |
|         // Use Persits AspEmail to send mail
 | |
|         try {
 | |
|             MAIL = CreateObject("Persits.MailSender");
 | |
|         } catch (e) {
 | |
|             console.log("ERROR " + e.number + ", " + e.description);
 | |
|             throw e;
 | |
|         }
 | |
| 
 | |
|         console.log("USING PERSITS MAIL SENDER");
 | |
|         console.log("MAIL FROM " + msg.From);
 | |
|         console.log("MAIL TO " + msg.To);
 | |
|         console.log("SUBJECT " + msg.Subject);
 | |
| 
 | |
|         MAIL.Host = msg.MAILHOST;
 | |
|         MAIL.From = msg.From;
 | |
|         if (msg.Name) MAIL.FromName = msg.Name;
 | |
|         MAIL.AddAddress(msg.To);
 | |
|         MAIL.Subject = msg.Subject;
 | |
|         if (msg.cc) MAIL.AddCC(msg.Cc);
 | |
|         MAIL.IsHTML = msg.IsHTML;
 | |
|         MAIL.Body = msg.Body;
 | |
|         MAIL.addCustomHeader("Reply-To: <" + msg.ReplyTo + ">");
 | |
|         console.log("Reply-To: <" + msg.ReplyTo + ">");
 | |
|         if (msg.id) {
 | |
|             console.log("Message-ID: <" + msg.id + ">");
 | |
|             MAIL.addCustomHeader("Message-ID: <" + msg.id + ">");
 | |
|         }
 | |
| 
 | |
|     } else {
 | |
| 
 | |
|         // Use CDO objects to send mail.  Setup SMTP server details.
 | |
|         var CONF = CreateObject("CDO.Configuration");
 | |
|         CONF.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2;
 | |
|         CONF.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = msg.MAILHOST;
 | |
|         CONF.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = msg.MAILPORT || 25;
 | |
|         CONF.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0;
 | |
|         CONF.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = (!useSSL ? 0 : 1);
 | |
|         CONF.Fields.Update();
 | |
| 
 | |
|         // Create the email message
 | |
|         MAIL = CreateObject("CDO.Message");
 | |
|         MAIL.Configuration = CONF;
 | |
|         CONF = null;
 | |
|         if (msg.Name) {
 | |
|             MAIL.From = '"' + msg.Name + '" <' + msg.From + '>';
 | |
|         } else {
 | |
|             MAIL.From = msg.From;
 | |
|         }
 | |
|         MAIL.To = msg.To;
 | |
|         if (msg.Cc) MAIL.Cc = msg.cc;
 | |
|         MAIL.Subject = msg.Subject;
 | |
|         MAIL.Fields("urn:schemas:mailheader:reply-to") = "<" + msg.ReplyTo + ">";
 | |
|         MAIL.Fields("urn:schemas:mailheader:message-id") = "<" + msg.id + ">";
 | |
|         if (msg.IsHTML) {
 | |
|             MAIL.HTMLBody = msg.Body;
 | |
|         } else {
 | |
|             MAIL.TextBody = msg.Body;
 | |
|         }
 | |
|         MAIL.Fields.Update();
 | |
|     }
 | |
| 
 | |
|     try {
 | |
|         console.log("Sending email To " + msg.To + (msg.Cc ? " (Cc " + msg.Cc + ")" : ""));
 | |
|         MAIL.Send();
 | |
|         ok = true;
 | |
|     } catch (e) {
 | |
|         console.log(e.number + "," + e.description);
 | |
|         ok = false;
 | |
|         console.log("failed");
 | |
|     }
 | |
| 
 | |
|     MAIL = null;
 | |
|     return ok;
 | |
| };
 | |
| 
 | |
| exports.sendmail = sendmail;
 | |
| 
 | |
| exports.VERSIONINFO = "Sendmail Library (sendmail.js) version 0.1.1";
 | |
| exports.global = global;
 | |
| exports.require = global.require;
 |