Sorry, I know it's pretty slow around here because of the holidays (and I'll be gone 
next week)... But I'd like to revisit this if possible...

I've been fumbling my way through java and made some vast improvements from yesterday. 
Using two java ext packages (javamail and jaf something), this cfx tag allows a user 
to send mail through an SMTP host that requires authorization. I've modified the 
source to add the CC and BCC fields and after recompiling they now work fabulously 
(although I still have a problem sending to multiple recipients in the "TO" field 
despite trying to play with that syntax as well, but multiples work fine in the other 
fields). Here is the bulk of the source...

**************************************************
}

  String to = request.getAttribute("TO");
  String cc = request.getAttribute("CC");
  String bcc = request.getAttribute("BCC");
  String from = request.getAttribute("FROM");
  String subject = request.getAttribute("SUBJECT");
  String message = request.getAttribute("MESSAGE");
  String host = request.getAttribute("HOST");
  String user = request.getAttribute("USER");
  String password = request.getAttribute("PASSWORD");
  //default port to 25
  int port = 25;
  if(request.attributeExists("PORT"))
  {
   port = Integer.parseInt(request.getAttribute("PORT"));
  } 
  
  Properties props = new Properties();
  props.put("mail.smtp.host", host);
  props.put("mail.smtp.auth", "true");
    
  Session session = Session.getDefaultInstance(props, null);
  try {
      // create a message
      Message msg = new MimeMessage(session);
      msg.setFrom(new InternetAddress(from));
      InternetAddress[] address = { new InternetAddress(to) };
      msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
      if (cc != null) msg.setRecipients(Message.RecipientType.CC, 
InternetAddress.parse(cc, false));
      if (bcc != null) msg.setRecipients(Message.RecipientType.BCC, 
InternetAddress.parse(bcc, false));
      msg.setSubject(subject);
      msg.setSentDate(new Date());
      msg.setText(message);

      // send the message
      Transport tr = session.getTransport("smtp");
      System.out.println();
   
   tr.connect(host, port, user, password);
   msg.saveChanges();
   tr.sendMessage( msg, msg.getAllRecipients() );
      
  } 
    catch (Exception sfx) 
    { 
     response.write("Mail send Failure! " + sfx.getMessage());
    } 
  response.write("Mail sent successfully.");
}

****************************************

So I pass the following parameters to it:

****************************************
<CFX_AuthSMTP 
  TO="#FORM.to#" 
  FROM="#FORM.from#"
  SUBJECT="#FORM.subject#" 
  CC="#FORM.cc#" BCC="#FORM.bcc#" 
  TYPE="HTML" 
  MESSAGE="#FORM.body#"
  HOST="#VARIABLES.SMTP_HOST#" 
  PORT="#VARIABLES.SMTP_PORT#" 
  USER="#VARIABLES.SMTP_USER#"
  PASSWORD="#VARIABLES.SMTP_PASS#">
******************************************

My last issue is sending attachments. In the original version, they were uploaded and 
set with a cfmailparam tag before closing the CFMAIL tag:

<CFLOOP INDEX="attachment" LIST="#FORM.attachments#" DELIMITERS=",">
<CFMAILPARAM FILE="#VARIABLES.attachmentPath#/#attachment#">
</CFLOOP>

I haven't the foggiest clue how to integrate them into the CFX tag with the source 
above. I realize none of you may be familiar with the custom tag I'm using, but do you 
have any hints/clues/starting points? 

Sorry to sound like such an ignorant slob, but I'm pretty thrilled I got as far as I 
did for an admin :-)

Cathy
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Your ad could be here. Monies from ads go to support these lists and provide more 
resources for the community. http://www.fusionauthority.com/ads.cfm

Reply via email to