CFMX 'bug'? Easy to crash CFMAIL.
Well, it was about time... Finally upgraded my CF 4.5 server to 6.1. Had minimal problems, and really nothing unexpected, except for this one showstopper: Previously, if you tried to send cfmail to "foo@ bar.com" (note the space) or "foo@@bar.com" or somesuch, cfmail would just dump it into the undeliverable folder and soldier on. Under 6.1 it crashes the application. Now, we all know the GIGO rule about data, but try telling that to a large client with an equally large membership they can no longer send mail to as a group. I've written an email validator, and added a lot of processing overhead to the mail service, but I've still taken a big black eye over this. Something this obvious has been reported, right? Or is it taken for granted now that CFMAIL breaks on this? I can only find minimal mention of this (one post on some guy's forum) on Google and nothing at MM, although I may be missing it. Matt Robertson [EMAIL PROTECTED] MSB Designs, Inc. http://mysecretbase.com [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
I'm checking with the engineering team. I'll let you know what I hear. Christian On Tuesday, January 20, 2004, at 11:14 AM, Matt Robertson wrote: > Well, it was about time... Finally upgraded my CF 4.5 server to 6.1. > Had minimal problems, and really nothing unexpected, except for this > one > showstopper: > > Previously, if you tried to send cfmail to "foo@ bar.com" (note the > space) or "foo@@bar.com" or somesuch, cfmail would just dump it into > the > undeliverable folder and soldier on. Under 6.1 it crashes the > application. Now, we all know the GIGO rule about data, but try > telling > that to a large client with an equally large membership they can no > longer send mail to as a group. > > I've written an email validator, and added a lot of processing overhead > to the mail service, but I've still taken a big black eye over this. > Something this obvious has been reported, right? Or is it taken for > granted now that CFMAIL breaks on this? > > I can only find minimal mention of this (one post on some guy's forum) > on Google and nothing at MM, although I may be missing it. > > > Matt Robertson [EMAIL PROTECTED] > MSB Designs, Inc. http://mysecretbase.com > > > [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
On Tuesday 20 Jan 2004 16:14 pm, Matt Robertson wrote: > showstopper: It's not a bug in CFMX, but rather your app. If your app thinks "foo@ bar.com" or "foo@@bar.com" is a valid email address and lets someone enter it, your app is broke. -- Tom Chiverton Advanced ColdFusion Programmer Tel: +44(0)1749 834997 email: [EMAIL PROTECTED] BlueFinger Limited Underwood Business Park Wookey Hole Road, WELLS. BA5 1AF Tel: +44 (0)1749 834900 Fax: +44 (0)1749 834901 web: www.bluefinger.com Company Reg No: 4209395 Registered Office: 2 Temple Back East, Temple Quay, BRISTOL. BS1 6EG. *** This E-mail contains confidential information for the addressee only. If you are not the intended recipient, please notify us immediately. You should not use, disclose, distribute or copy this communication if received in error. No binding contract will result from this e-mail until such time as a written document is signed on behalf of the company. BlueFinger Limited cannot accept responsibility for the completeness or accuracy of this message as it has been transmitted over public networks.*** [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Thanks Christian, I'm getting burned hard over this by a very large client. We were about to set them up with their own dedicated CF cluster and this hit. Made all the political opponents in the organization came out of the woodwork. Did some more looking. Looks like its been griped about here before, albeit only once and very recently. http://www.houseoffusion.com/cf_lists/index.cfm?method=messages&ThreadID =29645&forumid=4𤕉 I see issue #37498 was at least partially similar and fixed in 6.1, but only for the From address. Matt Robertson [EMAIL PROTECTED] MSB Designs, Inc. http://mysecretbase.com [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Here is the error I get: Attribute validation error for tag CFMAIL. The value of the attribute to, which is currently "tomj@ macromedia.com", is invalid. Which is the correct thing - the attribute is invalid. Nothing is crashing. -- Tom Jordahl Macromedia Server Development -Original Message- From: Matt Robertson [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 20, 2004 11:14 AM To: CF-Talk Subject: CFMX 'bug'? Easy to crash CFMAIL. Well, it was about time... Finally upgraded my CF 4.5 server to 6.1. Had minimal problems, and really nothing unexpected, except for this one showstopper: Previously, if you tried to send cfmail to "foo@ bar.com" (note the space) or "foo@@bar.com" or somesuch, cfmail would just dump it into the undeliverable folder and soldier on. Under 6.1 it crashes the application. Now, we all know the GIGO rule about data, but try telling that to a large client with an equally large membership they can no longer send mail to as a group. I've written an email validator, and added a lot of processing overhead to the mail service, but I've still taken a big black eye over this. Something this obvious has been reported, right? Or is it taken for granted now that CFMAIL breaks on this? I can only find minimal mention of this (one post on some guy's forum) on Google and nothing at MM, although I may be missing it. Matt Robertson [EMAIL PROTECTED] MSB Designs, Inc. http://mysecretbase.com [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
For a quick fix, do a global search and replace to use a custom tag called cf_mail, and then write cf_mail to call cfmail with a try catch. That will eliminate any issues from the end user experience. Then you can spend some time and fix it for real. -Dov _ From: Matt Robertson [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 20, 2004 11:33 AM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. Thanks Christian, I'm getting burned hard over this by a very large client. We were about to set them up with their own dedicated CF cluster and this hit. Made all the political opponents in the organization came out of the woodwork. Did some more looking. Looks like its been griped about here before, albeit only once and very recently. http://www.houseoffusion.com/cf_lists/index.cfm?method=messages&ThreadID =29645&forumid=4𤕉 I see issue #37498 was at least partially similar and fixed in 6.1, but only for the From address. Matt Robertson [EMAIL PROTECTED] MSB Designs, Inc. http://mysecretbase.com _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Thomas, Technically it is a bug. Cfmail should not throw an exception when passed an email address (no matter what the content) Particularly if this is a new bug introduced into 6.1 Your email didn't help and the tone of it was derogatory. This list is there for people to help each other. Please respect that. -Original Message- From: Thomas Chiverton [mailto:[EMAIL PROTECTED] Sent: 20 January 2004 16:31 To: CF-Talk Subject: Re: CFMX 'bug'? Easy to crash CFMAIL. On Tuesday 20 Jan 2004 16:14 pm, Matt Robertson wrote: > showstopper: It's not a bug in CFMX, but rather your app. If your app thinks "foo@ bar.com" or "foo@@bar.com" is a valid email address and lets someone enter it, your app is broke. -- Tom Chiverton Advanced ColdFusion Programmer Tel: +44(0)1749 834997 email: [EMAIL PROTECTED] BlueFinger Limited Underwood Business Park Wookey Hole Road, WELLS. BA5 1AF Tel: +44 (0)1749 834900 Fax: +44 (0)1749 834901 web: www.bluefinger.com Company Reg No: 4209395 Registered Office: 2 Temple Back East, Temple Quay, BRISTOL. BS1 6EG. *** This E-mail contains confidential information for the addressee only. If you are not the intended recipient, please notify us immediately. You should not use, disclose, distribute or copy this communication if received in error. No binding contract will result from this e-mail until such time as a written document is signed on behalf of the company. BlueFinger Limited cannot accept responsibility for the completeness or accuracy of this message as it has been transmitted over public networks.*** [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
On Tuesday 20 Jan 2004 16:57 pm, Adam Reynolds wrote: > Thomas, > Technically it is a bug. Cfmail should not throw an exception when passed > an email address (no matter what the content) Particularly if this is a new > bug introduced into 6.1 It wasn't being passed an email address though, was it, which was my point. It was therefore within it's rights to throw an exception. The change in behaviour should have been documented, I agree. Also, though, Matt's testing should have caught this - because we test with real world data don't we :-) There is also a general rule about app design that goes along the lines of "try/catch any interaction with outside systems" - that would be things like mail servers, databases and fax machines. > Your email didn't help and the tone of it was derogatory. This list is > there for people to help each other. Please respect that. And I've both given and recieved it. -- Tom Chiverton Advanced ColdFusion Programmer Tel: +44(0)1749 834997 email: [EMAIL PROTECTED] BlueFinger Limited Underwood Business Park Wookey Hole Road, WELLS. BA5 1AF Tel: +44 (0)1749 834900 Fax: +44 (0)1749 834901 web: www.bluefinger.com Company Reg No: 4209395 Registered Office: 2 Temple Back East, Temple Quay, BRISTOL. BS1 6EG. *** This E-mail contains confidential information for the addressee only. If you are not the intended recipient, please notify us immediately. You should not use, disclose, distribute or copy this communication if received in error. No binding contract will result from this e-mail until such time as a written document is signed on behalf of the company. BlueFinger Limited cannot accept responsibility for the completeness or accuracy of this message as it has been transmitted over public networks.*** [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
> Technically it is a bug. Cfmail should not throw an exception > when passed an email address (no matter what the content) > Particularly if this is a new bug introduced into 6.1 I disagree with this. I think that this behavior is in some ways preferable to previous behavior. I also think that this isn't necessarily a bug - it sounds like intentional behavior to me. But in any case, this doesn't help with your problem, and since you have existing code that depended on the previous behavior, you need some solution. You should be able to fix this pretty quickly by wrapping your CFMAIL tag within an exception handler. If you're using CFMAIL to process a query, you'll want to keep track of the record with the error, then skip to the next record. This should be pretty easy to retrofit to your application, I hope. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ voice: (202) 797-5496 fax: (202) 797-5444 [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Tom Jordahl wrote: >Which is the correct thing - the attribute is invalid. Nothing is crashing. The app is crashing due to undocumented, changed behavior. You might consider documenting it. So now, under CFMX, I must wrap any cfmail statement in a validator or a special try/catch to keep it from potentially crashing my app. OK. Got it. Matt Robertson [EMAIL PROTECTED] MSB Designs, Inc. http://mysecretbase.com [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
Adam Reynolds wrote: > > Technically it is a bug. Cfmail should not throw an exception when passed an > email address (no matter what the content) But the whole point is that it wasn't passed an email address. Jochem -- I don't get it immigrants don't work and steal our jobs - Loesje [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Incorrect. You simply need to check the email address first. This is best done one time - so do it before inserting it into the DB. [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Dave Watts wrote: >You should be able to fix this pretty quickly by wrapping your >CFMAIL tag within an exception handler. Yes. Fortunately I have few uses of this tag where the data is outside normal validation. I can't do it before db insertion because its not my data. I'll write a try/catch and a validator with a result log displayed onscreen and stored. Probably a custom tag or something. Matt Robertson [EMAIL PROTECTED] MSB Designs, Inc. http://mysecretbase.com [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
IMHO, CF fixed the "bug" in 6.1 by making it enforce the IETF email address standards... Relying on the "bug" in previous versions was a mistake. :) -dov _ From: Dave Watts [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 20, 2004 12:14 PM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > Technically it is a bug. Cfmail should not throw an exception > when passed an email address (no matter what the content) > Particularly if this is a new bug introduced into 6.1 I disagree with this. I think that this behavior is in some ways preferable to previous behavior. I also think that this isn't necessarily a bug - it sounds like intentional behavior to me. But in any case, this doesn't help with your problem, and since you have existing code that depended on the previous behavior, you need some solution. You should be able to fix this pretty quickly by wrapping your CFMAIL tag within an exception handler. If you're using CFMAIL to process a query, you'll want to keep track of the record with the error, then skip to the next record. This should be pretty easy to retrofit to your application, I hope. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ voice: (202) 797-5496 fax: (202) 797-5444 _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
On Tuesday 20 Jan 2004 17:12 pm, Matt Robertson wrote: > So now, under CFMX, I must wrap any cfmail statement in a validator or a > special try/catch to keep it from potentially crashing my app. OK. Got > it. Umm, no, you should validate user input before acting on it. Idealy at entry time. The same way you strip out '";drop all;commit;' from peoples usernames. -- Tom Chiverton Advanced ColdFusion Programmer Tel: +44(0)1749 834997 email: [EMAIL PROTECTED] BlueFinger Limited Underwood Business Park Wookey Hole Road, WELLS. BA5 1AF Tel: +44 (0)1749 834900 Fax: +44 (0)1749 834901 web: www.bluefinger.com Company Reg No: 4209395 Registered Office: 2 Temple Back East, Temple Quay, BRISTOL. BS1 6EG. *** This E-mail contains confidential information for the addressee only. If you are not the intended recipient, please notify us immediately. You should not use, disclose, distribute or copy this communication if received in error. No binding contract will result from this e-mail until such time as a written document is signed on behalf of the company. BlueFinger Limited cannot accept responsibility for the completeness or accuracy of this message as it has been transmitted over public networks.*** [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
On Tuesday 20 Jan 2004 17:27 pm, Matt Robertson wrote: > I can't do it before db insertion because its not my data. Even better then :-) Spend 2 seconds knocking up a over all your data and testing the email address field. Then take the list of failues to the data provider and give them all the grief you got :-) -- Tom Chiverton Advanced ColdFusion Programmer Tel: +44(0)1749 834997 email: [EMAIL PROTECTED] BlueFinger Limited Underwood Business Park Wookey Hole Road, WELLS. BA5 1AF Tel: +44 (0)1749 834900 Fax: +44 (0)1749 834901 web: www.bluefinger.com Company Reg No: 4209395 Registered Office: 2 Temple Back East, Temple Quay, BRISTOL. BS1 6EG. *** This E-mail contains confidential information for the addressee only. If you are not the intended recipient, please notify us immediately. You should not use, disclose, distribute or copy this communication if received in error. No binding contract will result from this e-mail until such time as a written document is signed on behalf of the company. BlueFinger Limited cannot accept responsibility for the completeness or accuracy of this message as it has been transmitted over public networks.*** [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
>Then take the list of failues to the data provider and give them all the grief >you got :-) Can't. Politics. The data came from the company itself. I've already got a validator that works fine, although I may go for a more robust custom tag type of solution that gets serious about reporting user-friendly errors to the sender and such. Odd that a similar issue was reported as fixed in 6.1, but only for the >From field. Must have been other issues involved there. Seems like the positive thing that should come of this is that the changed behavior gets documented and we leave it at that. Matt Robertson [EMAIL PROTECTED] MSB Designs, Inc. http://mysecretbase.com -Original Message- From: Thomas Chiverton [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 20, 2004 9:38 AM To: CF-Talk Subject: Re: CFMX 'bug'? Easy to crash CFMAIL. On Tuesday 20 Jan 2004 17:27 pm, Matt Robertson wrote: > I can't do it before db insertion because its not my data. Even better then :-) Spend 2 seconds knocking up a over all your data and testing the email address field. -- Tom Chiverton Advanced ColdFusion Programmer Tel: +44(0)1749 834997 email: [EMAIL PROTECTED] BlueFinger Limited Underwood Business Park Wookey Hole Road, WELLS. BA5 1AF Tel: +44 (0)1749 834900 Fax: +44 (0)1749 834901 web: www.bluefinger.com Company Reg No: 4209395 Registered Office: 2 Temple Back East, Temple Quay, BRISTOL. BS1 6EG. *** This E-mail contains confidential information for the addressee only. If you are not the intended recipient, please notify us immediately. You should not use, disclose, distribute or copy this communication if received in error. No binding contract will result from this e-mail until such time as a written document is signed on behalf of the company. BlueFinger Limited cannot accept responsibility for the completeness or accuracy of this message as it has been transmitted over public networks.*** [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
On Tuesday, January 20, 2004, at 11:14 AM, Matt Robertson wrote: > Previously, if you tried to send cfmail to "foo@ bar.com" (note the > space) or "foo@@bar.com" or somesuch, cfmail would just dump it into > the > undeliverable folder and soldier on. Just to verify what I think everyone has already figured out, the current behavior isn't a bug. When you said the application was "crashing", I thought you meant it was crashing the application server, which obviously would have been big bug. It seems ColdFusion is throwing an exception, instead, indicating that the email address is invalid, which was a deliberate change in CFMX. It looks like you have already considered several options for re-factoring your code. If you like having undelivered mail saved in a particular directory or file, you can always manually do so in a CFCATCH block. Otherwise, validation either at the time the data is entered (preferable), or at the time the data is selected is clearly in order. Sorry for the confusion. Christian [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
>It's not a bug in CFMX, but rather your app. If your app thinks "foo@ >bar.com" or "foo@@bar.com" is a valid email address and lets someone enter >it, your app is broke. I don't agree fully with this. While I validate new emails on the forms I create, I don't always have control over new data. Lists can be imported, other staff can access the database from the backend etc. Old bad data lives on despite our best efforts. I got hit with this one immediately after upgrading to 6.0. I'm surprised more people haven't complained. But I addressed it as an annoyance, validated emails as they are being input AND as they are being sent, and flagged bad ones to not be sent to in the future. It was surprising that what seemed to work well in 4.5 didn't work well in MX. But, for me it was an education, I wasn't diligent enough about allowing garbage in. BG >From: Thomas Chiverton <[EMAIL PROTECTED]> >Reply-To: [EMAIL PROTECTED] >To: CF-Talk <[EMAIL PROTECTED]> >Subject: Re: CFMX 'bug'? Easy to crash CFMAIL. >Date: Tue, 20 Jan 2004 17:05:37 + > >On Tuesday 20 Jan 2004 16:57 pm, Adam Reynolds wrote: > > Thomas, > > Technically it is a bug. Cfmail should not throw an exception when >passed > > an email address (no matter what the content) Particularly if this is a >new > > bug introduced into 6.1 > >It wasn't being passed an email address though, was it, which was my point. >It was therefore within it's rights to throw an exception. The change in >behaviour should have been documented, I agree. > >Also, though, Matt's testing should have caught this - because we test with >real world data don't we :-) > >There is also a general rule about app design that goes along the lines of >"try/catch any interaction with outside systems" - that would be things >like >mail servers, databases and fax machines. > > > Your email didn't help and the tone of it was derogatory. This list is > > there for people to help each other. Please respect that. > >And I've both given and recieved it. > >-- >Tom Chiverton >Advanced ColdFusion Programmer > >Tel: +44(0)1749 834997 >email: [EMAIL PROTECTED] >BlueFinger Limited >Underwood Business Park >Wookey Hole Road, WELLS. BA5 1AF >Tel: +44 (0)1749 834900 >Fax: +44 (0)1749 834901 >web: www.bluefinger.com >Company Reg No: 4209395 Registered Office: 2 Temple Back East, Temple >Quay, BRISTOL. BS1 6EG. >*** This E-mail contains confidential information for the addressee >only. If you are not the intended recipient, please notify us >immediately. You should not use, disclose, distribute or copy this >communication if received in error. No binding contract will result from >this e-mail until such time as a written document is signed on behalf of >the company. BlueFinger Limited cannot accept responsibility for the >completeness or accuracy of this message as it has been transmitted over >public networks.*** > > [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
On Tuesday 20 Jan 2004 18:13 pm, Matt Robertson wrote: > Can't. Politics. Bah :-) -- Tom Chiverton Advanced ColdFusion Programmer Tel: +44(0)1749 834997 email: [EMAIL PROTECTED] BlueFinger Limited Underwood Business Park Wookey Hole Road, WELLS. BA5 1AF Tel: +44 (0)1749 834900 Fax: +44 (0)1749 834901 web: www.bluefinger.com Company Reg No: 4209395 Registered Office: 2 Temple Back East, Temple Quay, BRISTOL. BS1 6EG. *** This E-mail contains confidential information for the addressee only. If you are not the intended recipient, please notify us immediately. You should not use, disclose, distribute or copy this communication if received in error. No binding contract will result from this e-mail until such time as a written document is signed on behalf of the company. BlueFinger Limited cannot accept responsibility for the completeness or accuracy of this message as it has been transmitted over public networks.*** [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Some things I feel I must point out. 1. Data Integrity is always an issue but why should I waste my precious cpu time checking first what the tag is already checking. If this was truly intentional I would think that the devs at Macromedia would have built in a little more reverse compatibility, Maybe some sort of attributes called throwonbademail defaulted to false. 2. My main problem with this is that if you send to a query and it throws an error it stops mid e-mail and does not rollback or anything it only sends out the first percentage of the e-mail before the bad e-mail address. Tyler Clendenin GSL Solutions [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Re #1: Doesn't putting a try/catch around the cfmail do the trick? That way you don't have to validate the email yourself... just let cfmail fail if it wants to. If you put the try/catch around the entire cfloop (or cfoutput) of a query then Yes, it will abort the whole job. But if you put the cftry/cfcatch around only the cfmail then you can do whatever error recovery you want. One easy way is to set variables.DidEmailWork = true above the cftry/cfmail and set variables.DidEmailWork = false in the cfcatch. Then do any good/no good handling outside of the cfttry using that variable to decide what happened. Mark -Original Message- From: Tyler Clendenin [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:18 AM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. Some things I feel I must point out. 1. Data Integrity is always an issue but why should I waste my precious cpu time checking first what the tag is already checking. If this was truly intentional I would think that the devs at Macromedia would have built in a little more reverse compatibility, Maybe some sort of attributes called throwonbademail defaulted to false. 2. My main problem with this is that if you send to a query and it throws an error it stops mid e-mail and does not rollback or anything it only sends out the first percentage of the e-mail before the bad e-mail address. Tyler Clendenin GSL Solutions _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
> 1. Data Integrity is always an issue but why should I waste > my precious cpu time checking first what the tag is already > checking. If this was truly intentional I would think that > the devs at Macromedia would have built in a little more > reverse compatibility, Maybe some sort of attributes called > throwonbademail defaulted to false. Well, in the previous versions, the tag wasn't actually checking anything, apparently. It was just putting mail in the queue, and that mail would be undeliverable for obvious reasons. That's certainly not good behavior. As for its intentionality, I suspect that there are a lot of these sorts of differences between CFMX and prior versions, since the entire product was rewritten from C++ (I think) to Java. In this particular case, I think the new behavior is more sensible than the old. > 2. My main problem with this is that if you send to a query > and it throws an error it stops mid e-mail and does not > rollback or anything it only sends out the first percentage > of the e-mail before the bad e-mail address. Yeah, this sucks if you have existing code, and there's no obvious way to just return to the next record as far as I know. I'd recommend that, within your CFMAIL query loop, you keep track of the current record, and trap that within your exception handler so you know where to resume. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ voice: (202) 797-5496 fax: (202) 797-5444 [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Warning: Doing all the try-catches is once again relying on CF behavior which we all witnessed changing without notice (rightfully so). The proper way to do this is to perform the syntax check yourself, and only call CFMAIL if necessary. If anything, CFMX should be kind enough to add a new function isValidEmail() since most webapps do it pretty often. By CFCatching all CFMAIL errors, you might never find out you had a bad mailserver configured, or something else completely different from an improperly formatted email address. -Dov _ From: Gaulin, Mark [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:25 AM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. Re #1: Doesn't putting a try/catch around the cfmail do the trick? That way you don't have to validate the email yourself... just let cfmail fail if it wants to. If you put the try/catch around the entire cfloop (or cfoutput) of a query then Yes, it will abort the whole job. But if you put the cftry/cfcatch around only the cfmail then you can do whatever error recovery you want. One easy way is to set variables.DidEmailWork = true above the cftry/cfmail and set variables.DidEmailWork = false in the cfcatch. Then do any good/no good handling outside of the cfttry using that variable to decide what happened. Mark -Original Message- From: Tyler Clendenin [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:18 AM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. Some things I feel I must point out. 1. Data Integrity is always an issue but why should I waste my precious cpu time checking first what the tag is already checking. If this was truly intentional I would think that the devs at Macromedia would have built in a little more reverse compatibility, Maybe some sort of attributes called throwonbademail defaulted to false. 2. My main problem with this is that if you send to a query and it throws an error it stops mid e-mail and does not rollback or anything it only sends out the first percentage of the e-mail before the bad e-mail address. Tyler Clendenin GSL Solutions _ _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
> Re #1: Doesn't putting a try/catch around the cfmail do the > trick? That way you don't have to validate the email yourself... > just let cfmail fail if it wants to. > > If you put the try/catch around the entire cfloop (or cfoutput) > of a query then Yes, it will abort the whole job. But if you put > the cftry/cfcatch around only the cfmail then you can do whatever > error recovery you want. One easy way is to set > variables.DidEmailWork = true above the cftry/cfmail and set > variables.DidEmailWork = false in the cfcatch. Then do any good/no > good handling outside of the cfttry using that variable to decide > what happened. Unfortunately, this approach isn't as clear when you're using a query with your CFMAIL tag itself; when you do that, it automatically loops over your recordset, and if any record within that recordset has an invalid address, the whole thing will fail at that point. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ voice: (202) 797-5496 fax: (202) 797-5444 [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Tyler, 2) so why don't you CFLOOP query=, and cfmail inside the loop to solve this? -Dov _ From: Tyler Clendenin [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:18 AM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. Some things I feel I must point out. 1. Data Integrity is always an issue but why should I waste my precious cpu time checking first what the tag is already checking. If this was truly intentional I would think that the devs at Macromedia would have built in a little more reverse compatibility, Maybe some sort of attributes called throwonbademail defaulted to false. 2. My main problem with this is that if you send to a query and it throws an error it stops mid e-mail and does not rollback or anything it only sends out the first percentage of the e-mail before the bad e-mail address. Tyler Clendenin GSL Solutions _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
> The proper way to do this is to perform the syntax check yourself, and > only call CFMAIL if necessary. If anything, CFMX should be kind enough > to add a new function isValidEmail() since most webapps do it pretty > often. Does cflib count? http://www.cflib.org/udf.cfm?ID=216 Nick [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
> Warning: Doing all the try-catches is once again relying on > CF behavior which we all witnessed changing without notice > (rightfully so). > > The proper way to do this is to perform the syntax check > yourself, and only call CFMAIL if necessary. If anything, > CFMX should be kind enough to add a new function isValidEmail() > since most webapps do it pretty often. > > By CFCatching all CFMAIL errors, you might never find out you > had a bad mailserver configured, or something else completely > different from an improperly formatted email address. There's no reason why you can't investigate the reason for a mail failure within a CFCATCH block. In general, it's a good idea to use exception handling when dealing with external systems outside the control of your application (like your mail server). Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ voice: (202) 797-5496 fax: (202) 797-5444 [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Obviously. I was directing this comment it to the user who might just type and think his problems were over. -dov _ From: Dave Watts [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:53 AM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > Warning: Doing all the try-catches is once again relying on > CF behavior which we all witnessed changing without notice > (rightfully so). > > The proper way to do this is to perform the syntax check > yourself, and only call CFMAIL if necessary. If anything, > CFMX should be kind enough to add a new function isValidEmail() > since most webapps do it pretty often. > > By CFCatching all CFMAIL errors, you might never find out you > had a bad mailserver configured, or something else completely > different from an improperly formatted email address. There's no reason why you can't investigate the reason for a mail failure within a CFCATCH block. In general, it's a good idea to use exception handling when dealing with external systems outside the control of your application (like your mail server). Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ voice: (202) 797-5496 fax: (202) 797-5444 _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Dave Watts wrote: >..when you're using a query with >your CFMAIL tag itself.. >if any record within that recordset has an invalid address, >the whole thing will fail at that point. Exactly my situation. An external database with cfmail running with query=. Two choices: 1)do a pre-mail validation loop over the entire db; testing and flagging failures. 2. Do a cfloop over the query and cfmail inside of it, with validation at each step. Went with 2 as one loop seems better than two. If the validation check (a cfinclude) fails the email and all of its causes for failure are logged to a db record, and at the end of the operation that single failure report is emailed to the sender. Also put in try/catch behavior that includes logging any additional problems with that same report, and allows the process to continue on. Not sure if the latter is such a bright idea in light of the validation check, but I'll test a sample 10k mailer and see what happens with 10k failures. Matt Robertson [EMAIL PROTECTED] MSB Designs, Inc. http://mysecretbase.com [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
> Obviously. I was directing this comment it to the user who > might just type and think his problems were over. That would never be an appropriate way to use CFCATCH; rather than suggesting that people not use it, I would rather it be used correctly. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ voice: (202) 797-5496 fax: (202) 797-5444 [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
I would assume that that would be more intensive then using the query attribute within cfmail. I am not talking about just a few e-mails here, I do have to worry about processing time. Running a loop essentially kills the server. You are essentially saying the tag doesn't work right and i agree. Tyler Clendenin GSL Solutions _ From: Katz, Dov B (IT) [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:39 AM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. Tyler, 2) so why don't you CFLOOP query=, and cfmail inside the loop to solve this? -Dov _ From: Tyler Clendenin [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:18 AM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. Some things I feel I must point out. 1. Data Integrity is always an issue but why should I waste my precious cpu time checking first what the tag is already checking. If this was truly intentional I would think that the devs at Macromedia would have built in a little more reverse compatibility, Maybe some sort of attributes called throwonbademail defaulted to false. 2. My main problem with this is that if you send to a query and it throws an error it stops mid e-mail and does not rollback or anything it only sends out the first percentage of the e-mail before the bad e-mail address. Tyler Clendenin GSL Solutions _ _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
I've handled this by looping over my query, doing the validation, and re-building the query for the cfmail tag, minus the bad records. Total hassle, but better than crashing. -d - Original Message - From: "Dave Watts" <[EMAIL PROTECTED]> To: "CF-Talk" <[EMAIL PROTECTED]> Sent: Wednesday, January 21, 2004 9:44 AM Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > > Re #1: Doesn't putting a try/catch around the cfmail do the > > trick? That way you don't have to validate the email yourself... > > just let cfmail fail if it wants to. > > > > If you put the try/catch around the entire cfloop (or cfoutput) > > of a query then Yes, it will abort the whole job. But if you put > > the cftry/cfcatch around only the cfmail then you can do whatever > > error recovery you want. One easy way is to set > > variables.DidEmailWork = true above the cftry/cfmail and set > > variables.DidEmailWork = false in the cfcatch. Then do any good/no > > good handling outside of the cfttry using that variable to decide > > what happened. > > Unfortunately, this approach isn't as clear when you're using a query with > your CFMAIL tag itself; when you do that, it automatically loops over your > recordset, and if any record within that recordset has an invalid address, > the whole thing will fail at that point. > > Dave Watts, CTO, Fig Leaf Software > http://www.figleaf.com/ > voice: (202) 797-5496 > fax: (202) 797-5444 > > [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Well overall better then crashing is spending more money on something like cfx_activmail that just works. That is my major gripe, why can't these things just work. Even still with this new version of CFMX I have a problem after i get more then 2000 e-mails in my spool. If anyone wants the link ActivMail is at http://www.cfdev.com . It just works. Tyler Clendenin GSL Solutions _ From: Deanna Schneider [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 11:59 AM To: CF-Talk Subject: Re: CFMX 'bug'? Easy to crash CFMAIL. I've handled this by looping over my query, doing the validation, and re-building the query for the cfmail tag, minus the bad records. Total hassle, but better than crashing. -d - Original Message - From: "Dave Watts" <[EMAIL PROTECTED]> To: "CF-Talk" <[EMAIL PROTECTED]> Sent: Wednesday, January 21, 2004 9:44 AM Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > > Re #1: Doesn't putting a try/catch around the cfmail do the > > trick? That way you don't have to validate the email yourself... > > just let cfmail fail if it wants to. > > > > If you put the try/catch around the entire cfloop (or cfoutput) > > of a query then Yes, it will abort the whole job. But if you put > > the cftry/cfcatch around only the cfmail then you can do whatever > > error recovery you want. One easy way is to set > > variables.DidEmailWork = true above the cftry/cfmail and set > > variables.DidEmailWork = false in the cfcatch. Then do any good/no > > good handling outside of the cfttry using that variable to decide > > what happened. > > Unfortunately, this approach isn't as clear when you're using a query with > your CFMAIL tag itself; when you do that, it automatically loops over your > recordset, and if any record within that recordset has an invalid address, > the whole thing will fail at that point. > > Dave Watts, CTO, Fig Leaf Software > http://www.figleaf.com/ > voice: (202) 797-5496 > fax: (202) 797-5444 > > _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
The cfmail-with-a-query behavior does suck, doesn't it... If the exception included the bogus email address then it could be possible to sort the original query by email address, and then you can assume that any email address prior to the bogus one worked. Then you just have to requery starting after the bogus address. Yeah, I guess I would call throwing an exception when working on a group of emails a defect... it seems like there should be better ways to communicate the problem addresses back to the caller without aborting the entire job. Mark -Original Message- From: Dave Watts [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:44 AM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > Re #1: Doesn't putting a try/catch around the cfmail do the > trick? That way you don't have to validate the email yourself... > just let cfmail fail if it wants to. > > If you put the try/catch around the entire cfloop (or cfoutput) > of a query then Yes, it will abort the whole job. But if you put > the cftry/cfcatch around only the cfmail then you can do whatever > error recovery you want. One easy way is to set > variables.DidEmailWork = true above the cftry/cfmail and set > variables.DidEmailWork = false in the cfcatch. Then do any good/no > good handling outside of the cfttry using that variable to decide > what happened. Unfortunately, this approach isn't as clear when you're using a query with your CFMAIL tag itself; when you do that, it automatically loops over your recordset, and if any record within that recordset has an invalid address, the whole thing will fail at that point. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ voice: (202) 797-5496 fax: (202) 797-5444 _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
> That is my major gripe, why can't these things just work. Because what to you is 'just working' is to a bunch of other people 'hiding an import error'. If you have CFMX 6.1 mail spooling problems, I would look to your mail server. I would also report a problem through technical support and maybe we can fix it for you. By the way, there is very little functional difference between cfmail qeuery= and cfloop/cfmail. If you believe your DB has bad Email addresses in it, use the loop and validate the addresses. If you have verified your data's integrity on entry, use the query= syntax. I do have an enhancement on my plate to batch bad addresses when running cfmail over a query. We know this is a problem many users encounter. We just have to figure out how the interface would work. Suggestions? -- Tom Jordahl Macromedia Server Development -Original Message- From: Tyler Clendenin [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 12:11 PM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. Well overall better then crashing is spending more money on something like cfx_activmail that just works. That is my major gripe, why can't these things just work. Even still with this new version of CFMX I have a problem after i get more then 2000 e-mails in my spool. If anyone wants the link ActivMail is at http://www.cfdev.com . It just works. Tyler Clendenin GSL Solutions _ From: Deanna Schneider [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 11:59 AM To: CF-Talk Subject: Re: CFMX 'bug'? Easy to crash CFMAIL. I've handled this by looping over my query, doing the validation, and re-building the query for the cfmail tag, minus the bad records. Total hassle, but better than crashing. -d - Original Message - From: "Dave Watts" <[EMAIL PROTECTED]> To: "CF-Talk" <[EMAIL PROTECTED]> Sent: Wednesday, January 21, 2004 9:44 AM Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > > Re #1: Doesn't putting a try/catch around the cfmail do the > > trick? That way you don't have to validate the email yourself... > > just let cfmail fail if it wants to. > > > > If you put the try/catch around the entire cfloop (or cfoutput) > > of a query then Yes, it will abort the whole job. But if you put > > the cftry/cfcatch around only the cfmail then you can do whatever > > error recovery you want. One easy way is to set > > variables.DidEmailWork = true above the cftry/cfmail and set > > variables.DidEmailWork = false in the cfcatch. Then do any good/no > > good handling outside of the cfttry using that variable to decide > > what happened. > > Unfortunately, this approach isn't as clear when you're using a query with > your CFMAIL tag itself; when you do that, it automatically loops over your > recordset, and if any record within that recordset has an invalid address, > the whole thing will fail at that point. > > Dave Watts, CTO, Fig Leaf Software > http://www.figleaf.com/ > voice: (202) 797-5496 > fax: (202) 797-5444 > > _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Why not make a nwe query object during cfmail called CFMAIL.FAILED and make that query have rows from the original one which failed? Then users can cfloop/cfoutput over that query if the recordcount is nonzero. -Dov _ From: Tom Jordahl [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 2:34 PM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > That is my major gripe, why can't these things just work. Because what to you is 'just working' is to a bunch of other people 'hiding an import error'. If you have CFMX 6.1 mail spooling problems, I would look to your mail server. I would also report a problem through technical support and maybe we can fix it for you. By the way, there is very little functional difference between cfmail qeuery= and cfloop/cfmail. If you believe your DB has bad Email addresses in it, use the loop and validate the addresses. If you have verified your data's integrity on entry, use the query= syntax. I do have an enhancement on my plate to batch bad addresses when running cfmail over a query. We know this is a problem many users encounter. We just have to figure out how the interface would work. Suggestions? -- Tom Jordahl Macromedia Server Development -Original Message- From: Tyler Clendenin [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 12:11 PM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. Well overall better then crashing is spending more money on something like cfx_activmail that just works. That is my major gripe, why can't these things just work. Even still with this new version of CFMX I have a problem after i get more then 2000 e-mails in my spool. If anyone wants the link ActivMail is at http://www.cfdev.com . It just works. Tyler Clendenin GSL Solutions _ From: Deanna Schneider [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 11:59 AM To: CF-Talk Subject: Re: CFMX 'bug'? Easy to crash CFMAIL. I've handled this by looping over my query, doing the validation, and re-building the query for the cfmail tag, minus the bad records. Total hassle, but better than crashing. -d - Original Message - From: "Dave Watts" <[EMAIL PROTECTED]> To: "CF-Talk" <[EMAIL PROTECTED]> Sent: Wednesday, January 21, 2004 9:44 AM Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > > Re #1: Doesn't putting a try/catch around the cfmail do the > > trick? That way you don't have to validate the email yourself... > > just let cfmail fail if it wants to. > > > > If you put the try/catch around the entire cfloop (or cfoutput) > > of a query then Yes, it will abort the whole job. But if you put > > the cftry/cfcatch around only the cfmail then you can do whatever > > error recovery you want. One easy way is to set > > variables.DidEmailWork = true above the cftry/cfmail and set > > variables.DidEmailWork = false in the cfcatch. Then do any good/no > > good handling outside of the cfttry using that variable to decide > > what happened. > > Unfortunately, this approach isn't as clear when you're using a query with > your CFMAIL tag itself; when you do that, it automatically loops over your > recordset, and if any record within that recordset has an invalid address, > the whole thing will fail at that point. > > Dave Watts, CTO, Fig Leaf Software > http://www.figleaf.com/ > voice: (202) 797-5496 > fax: (202) 797-5444 > > _ _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
On Wednesday, January 21, 2004, at 10:18 AM, Tyler Clendenin wrote: > My main problem with this is that if you send to a query and it throws > an > error it stops mid e-mail and does not rollback or anything it only > sends > out the first percentage of the e-mail before the bad e-mail address. Do you mean if you pass a query into the CFMAIL tag? That's the price you pay for convenience. If you have validated all your email address on their way in, use this feature with confidence. If you have not, then loop through the query manually and either validate or catch errors. Sometimes the most convent solution is not the most appropriate for your needs. Christian [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
so you see no forseeable performance issue with looping over using the query? also does the validator follow all rfc822 standards such as quoted identifiers.and in clarification, this behavoir is a new "improvement" and not a bug? Tyler Clendenin GSL Solutions _ From: Tom Jordahl [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 2:34 PM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > That is my major gripe, why can't these things just work. Because what to you is 'just working' is to a bunch of other people 'hiding an import error'. If you have CFMX 6.1 mail spooling problems, I would look to your mail server. I would also report a problem through technical support and maybe we can fix it for you. By the way, there is very little functional difference between cfmail qeuery= and cfloop/cfmail. If you believe your DB has bad Email addresses in it, use the loop and validate the addresses. If you have verified your data's integrity on entry, use the query= syntax. I do have an enhancement on my plate to batch bad addresses when running cfmail over a query. We know this is a problem many users encounter. We just have to figure out how the interface would work. Suggestions? -- Tom Jordahl Macromedia Server Development [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
As I find confidence is just another way to write buggy code. If you can feel confident that every step of your process is yours and you have written it right then good job you are lucky because not everyone in the world has the ability to control everything they want. I at one time was confident that if there was a bad email address in my list it would not throw an error and would append a text file which i could use. This confidence was not misplaced, things just change. Tyler Clendenin GSL Solutions _ From: Christian Cantrell [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 2:41 PM To: CF-Talk Subject: Re: CFMX 'bug'? Easy to crash CFMAIL. On Wednesday, January 21, 2004, at 10:18 AM, Tyler Clendenin wrote: > My main problem with this is that if you send to a query and it throws > an > error it stops mid e-mail and does not rollback or anything it only > sends > out the first percentage of the e-mail before the bad e-mail address. Do you mean if you pass a query into the CFMAIL tag? That's the price you pay for convenience. If you have validated all your email address on their way in, use this feature with confidence. If you have not, then loop through the query manually and either validate or catch errors. Sometimes the most convent solution is not the most appropriate for your needs. Christian _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Tom Jordahl said: > > Because what to you is 'just working' is to a bunch of other people > 'hiding an import error'. +1 > I do have an enhancement on my plate to batch bad addresses when > running cfmail over a query. We know this is a problem many users > encounter. We just have to figure out how the interface would work. > Suggestions? Just make it behave like it is mail :-) Email that fails due to an email address error or a relaying denied error should be sent from failto to failto (#50755). If that fails, deliver to "[EMAIL PROTECTED]" with "<>" as the enveloppe-from. And add the option for administrators of (hosted) webservers to require the presence of a failto attribute. But whatever happens, I don't want *any* email in the undelivr folder. Too many privacy issues figuring out how it got there, whose mail it is and where it should go. I have virtually no option but to delete it without even trying to get it to the right place. Jochem [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
On Wednesday, January 21, 2004, at 02:54 PM, Tyler Clendenin wrote: > so you see no forseeable performance issue with looping over using the > query? I wouldn't think so. I would guess that's what is happening internally anyway. Perhaps Tom can clarify. > also does the validator follow all rfc822 standards such as quoted > identifiers. I'll leave that for Tom to answer. > and in clarification, this behavoir is a new "improvement" and > not a bug? Yes. We realize that the behavior is inconsistent with previous versions of ColdFusion, however we believe the new behavior exhibited by CFMX is preferable. Sorry for the difficulties it has caused with your code, but I think once you have completed the required re-factoring, you will find that your application is actually more robust. Christian [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
> Yes. We realize that the behavior is inconsistent with previous > versions of ColdFusion, however we believe the new behavior exhibited > by CFMX is preferable. I agree. But I also think MM failed to inform developers up to the level that such a change would require. Massimo Foti http://www.massimocorner.com Co-Author of Dreamweaver MX 2004 Magic: http://www.dwmagic.com/ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
The cfloop vs. cfmail query= Java bytecode will be very similar. There should be no performance penalty, although since you will be doing an extra operation (checking the address column) thing might run a bit slow because you are doing more work. The validator is the InternetAddress.parse function from JavaMail. Here is the code: InternetAddress[] rs; try { rs = InternetAddress.parse(addr); } catch (AddressException ex) { rs = null; } You can find documentation on the InternetAddress class at http://java.sun.com/products/javamail/reference/api/index.html Here is a paste of the JavaDoc: parse public static InternetAddress [] parse(java.lang.String addresslist) throws AddressException Parse the given comma separated sequence of addresses into InternetAddress objects. Addresses must follow RFC822 syntax. Parameters: addresslist - comma separated address strings Returns: array of InternetAddress objects Throws: AddressException - if the parse failed I hope this info helps. -- Tom Jordahl Macromedia Server Development -Original Message- From: Tyler Clendenin [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 2:55 PM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. so you see no forseeable performance issue with looping over using the query? also does the validator follow all rfc822 standards such as quoted identifiers.and in clarification, this behavoir is a new "improvement" and not a bug? Tyler Clendenin GSL Solutions _ From: Tom Jordahl [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 2:34 PM To: CF-Talk Subject: RE: CFMX 'bug'? Easy to crash CFMAIL. > That is my major gripe, why can't these things just work. Because what to you is 'just working' is to a bunch of other people 'hiding an import error'. If you have CFMX 6.1 mail spooling problems, I would look to your mail server. I would also report a problem through technical support and maybe we can fix it for you. By the way, there is very little functional difference between cfmail qeuery= and cfloop/cfmail. If you believe your DB has bad Email addresses in it, use the loop and validate the addresses. If you have verified your data's integrity on entry, use the query= syntax. I do have an enhancement on my plate to batch bad addresses when running cfmail over a query. We know this is a problem many users encounter. We just have to figure out how the interface would work. Suggestions? -- Tom Jordahl Macromedia Server Development _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
Christian wrote: >I think once you have completed the required re-factoring, >you will find that your application is actually more >robust. Absolutely. But I hope someone smacked themselves on the head and at the very, *very* least said "Oops. Lets try not do *that* again!" when the realization hit that this change was undocumented and unannounced (assuming I am not incorrect on that score). -- --- Matt Robertson, [EMAIL PROTECTED] MSB Designs, Inc. http://mysecretbase.com --- -- [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: CFMX 'bug'? Easy to crash CFMAIL.
On Wednesday, January 21, 2004, at 06:28 PM, Matt Robertson wrote: > But I hope someone smacked themselves on the head and at the very, > *very* least said "Oops. Lets try not do *that* again!" when the > realization hit that this change was undocumented and unannounced > (assuming I am not incorrect on that score) I haven't been able to find it documented anywhere, so you're right. I will make sure the appropriate person smacks himself on the head. Christian [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
Use the javax.mail construct for internet address. Wrap that in a try-catch and there's your validation. -Dov _ From: Tim Jackson [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 28, 2004 4:05 PM To: CF-Talk Subject: Re:CFMX 'bug'? Easy to crash CFMAIL. Raymond, Can you recommend the best way of checking the email first?... CFMX does not provide the same function that CFMAIL uses to validate. I have ran into many instances where tags from the CF Exchange pass emails (ISEmailResult, etc), and CFMAIL MX crashes. I agree with those of you who call this a BUG. 1. CFMAIL worked on previous versions regardless of fubared emails. Go ahead an allow CFMAIL tag checking for apps written after MX 6.1, but default it to not if it is not specified. It is not backward compatible. 2. It does "Crash" ColdFusion. It does not literally stop the service, but it invokes error handling, which, to the fat-fingered end user, is a crash. 3. CFMail DEMANDS a properly formatted email. But CFML does not provide the same function to test the same way it does. -Tim Attribute validation error for tag CFMAIL. >Incorrect. You simply need to check the email address first. This is best >done one time - so do it before inserting it into the DB. > > _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: CFMX 'bug'? Easy to crash CFMAIL.
> Can you recommend the best way of checking the email > first?... CFMX does not provide the same function that CFMAIL > uses to validate. I have ran into many instances where tags > from the CF Exchange pass emails (ISEmailResult, etc), and > CFMAIL MX crashes. > www.cflib.org/udf.cfm/isEmail [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
(CFMX RFE) RE: CFMX 'bug'? Easy to crash CFMAIL.
Here's my informal CFMX RFE based on this discussion: 1) add a new string function to the cf function library. public String isValidEmail(String s){ try{ new javax.mail.internet.InternetAddress(s); return true; } catch (javax.mail.internet.AddressException e){ return false; } } 2) Add to the CFMail tag routine a CFQuery object called "FAILED" with the same row structure as the original query, if one is passed in. Put a copy of each failed row in there. -Dov _ From: Christian Cantrell [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 2:41 PM To: CF-Talk Subject: Re: CFMX 'bug'? Easy to crash CFMAIL. On Wednesday, January 21, 2004, at 10:18 AM, Tyler Clendenin wrote: > My main problem with this is that if you send to a query and it throws > an > error it stops mid e-mail and does not rollback or anything it only > sends > out the first percentage of the e-mail before the bad e-mail address. Do you mean if you pass a query into the CFMAIL tag? That's the price you pay for convenience. If you have validated all your email address on their way in, use this feature with confidence. If you have not, then loop through the query manually and either validate or catch errors. Sometimes the most convent solution is not the most appropriate for your needs. Christian _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: (CFMX RFE) RE: CFMX 'bug'? Easy to crash CFMAIL.
Duh, it returns a boolean... you get the point... -Dov _ From: Katz, Dov B (IT) Sent: Wednesday, January 21, 2004 2:57 PM To: CF-Talk Subject: (CFMX RFE) RE: CFMX 'bug'? Easy to crash CFMAIL. Here's my informal CFMX RFE based on this discussion: 1) add a new string function to the cf function library. public String isValidEmail(String s){ try{ new javax.mail.internet.InternetAddress(s); return true; } catch (javax.mail.internet.AddressException e){ return false; } } 2) Add to the CFMail tag routine a CFQuery object called "FAILED" with the same row structure as the original query, if one is passed in. Put a copy of each failed row in there. -Dov _ From: Christian Cantrell [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 2:41 PM To: CF-Talk Subject: Re: CFMX 'bug'? Easy to crash CFMAIL. On Wednesday, January 21, 2004, at 10:18 AM, Tyler Clendenin wrote: > My main problem with this is that if you send to a query and it throws > an > error it stops mid e-mail and does not rollback or anything it only > sends > out the first percentage of the e-mail before the bad e-mail address. Do you mean if you pass a query into the CFMAIL tag? That's the price you pay for convenience. If you have validated all your email address on their way in, use this feature with confidence. If you have not, then loop through the query manually and either validate or catch errors. Sometimes the most convent solution is not the most appropriate for your needs. Christian _ _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re:(CFMX RFE) RE: CFMX 'bug'? Easy to crash CFMAIL.
Can this be implemented now in anyway? (CFSCRIPT?) [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]