• (cs) in reply to masklinn
    masklinn:
    Anonymous:
    Because most people start counting from 0

    Yeah except no, even in computer science where you're the most likely to find that kind of behaviour some people also start counting at 1 (Fortran arrays are 1-indexed for example).

    Normal people count from 1 onwards, not from 0 onwards.

    Some people need to review the set of Cardinal Numbers versus the set of Ordinal Numbers, among the set of Natural Numbers.
  • (cs) in reply to Bus Raker
    Bus Raker:
    SendKeys is a WTF'ing dream.  It's handy for April Fool's Day jokes and that's all.  


    So, I'm guessing your team isn't big on automated testing, then? :-P
  • helioland (unregistered)

    heh,
    you can send keydtrokes "ctrl + D" at first point :o) it is much easier :o) .... and it wors, outhpook did not ask you any questions

  • Thanny (unregistered) in reply to nsimeonov
    nsimeonov:

    Anonymous:
    You've honestly NEVER seen anyone ever use an enterpricey router?  Why are you even debating this point then?  My God, the crazy things you can do with those things...

    Looks like you didn't read thoroughly my message, but anyway... My point was, that you cannot distinguish between different applications on a machine. You may permit or deny a machine to communicate through a port to some other machine, but you cannot set a rule to allow Outlook to use port 25 (smtp), but noone else (application). This can be done through a software firewall. Do we agree on that finally?

    Using MS Exchange Server is a different issue and googling for 2 minutes gets you to this article http://support.microsoft.com/?id=310206 in other words - there's no excuse to rely on outlook to send your mails and keep what you've sent in the sent items folder - I believe we agreed on that too - there are databases invented last century for this case.

    Agreed?


    You seem to be stuck on a single machine.

    What you call a "firewall", or, more specifically, a "software firewall" is not what most of the people here call a firewall (whether software or hardware).

    We're talking about many different computers here.  The firewall has rules about what kind of traffic is allowed from different hosts (i.e. different computers, usually identified by their IP addresses). 

    It doesn't know that it's blocking traffic from some student's Java project that needs to send an e-mail.  It just knows that it's blocking traffic from student computers on port 25.  To the Internet.  Those computers have no trouble using port 25 to communicate to one or more separate computers designated as e-mail servers (which may, through some failure in the brain chain, actually be running Exchange).

    Those e-mail servers are allowed, by the firewall, to send traffice on port 25 to the Internet, to deliver the messages to their final destinations.

    This is the simple functionality of firewalls that you seemed (in an earlier message) to not understand.  No one, other than you, has brought up the notion of blocking traffic only for specific programs on a given computer.

    And yes, we're certainly agreed that sending e-mail via Outlook on a web server is atrocious, as is the notion that the best way to log server-sent e-mails is in the Sent box of that same Outlook program (and I shudder to think about the reentrancy of it's automation functions, especially with a confirmation dialog popping up for each one).

  • surfer (unregistered) in reply to JonR800
    Anonymous:
    I'm just going to assume this person had or has zero clue that SMTP exists.


    Given all the evidence, I'm just going to assume this person had zero clue, period.
  • (cs) in reply to Thanny

    Anonymous:

    You seem to be stuck on a single machine.

    What you call a "firewall", or, more specifically, a "software firewall" is not what most of the people here call a firewall (whether software or hardware).

    Ahh I'm getting pissed off... you either didn't read my entire posting or just read a couple of words of it and assumed the rest. What I said (and keep repeating in at least 3 posts) is that DISTINGUISHING traffic from different applications on a machine is possible ONLY using a SOFTWARE FIREWALL. Hardware firewalls CANNOT figure out what application generates the traffic. So do we finally agree on that?


    Anonymous:

    We're talking about many different computers here.  The firewall has rules about what kind of traffic is allowed from different hosts (i.e. different computers, usually identified by their IP addresses). 

    As well as MAC address, destination IP address, timeframe etc.

    Anonymous:

    It doesn't know that it's blocking traffic from some student's Java project that needs to send an e-mail.  It just knows that it's blocking traffic from student computers on port 25.  To the Internet.  Those computers have no trouble using port 25 to communicate to one or more separate computers designated as e-mail servers (which may, through some failure in the brain chain, actually be running Exchange).

    Ok and since I was arguing that the case someone described Outlook can send email and the student's java app doesn't is IMPOSSIBLE. Either all applications can communicate with the mailserver or there's a software firewall. Do you agree?

    Anonymous:
    Those e-mail servers are allowed, by the firewall, to send traffice on port 25 to the Internet, to deliver the messages to their final destinations.
    Exactly

    Anonymous:
    This is the simple functionality of firewalls that you seemed (in an earlier message) to not understand.  No one, other than you, has brought up the notion of blocking traffic only for specific programs on a given computer.

    Oh boy... could you please quote what I said that's wrong and makes you think I don't understand how firewalls work? Please... 

    Oh and blocking traffic from specific programs is possible when you have a software firewall - go check ZoneAlarm, Symantec Firewall even the latest versions of Windows firewall have this functionality.

    And again my point was that distinguishing traffic generated by different applications is possible only if you are using a software firewall. I hope it's clear now, isn't it?


    Anonymous:

    And yes, we're certainly agreed that sending e-mail via Outlook on a web server is atrocious, as is the notion that the best way to log server-sent e-mails is in the Sent box of that same Outlook program (and I shudder to think about the reentrancy of it's automation functions, especially with a confirmation dialog popping up for each one).

    No doublt about that.

  • Fake Coworker. (unregistered) in reply to nsimeonov
    nsimeonov:


    And again my point was that distinguishing traffic generated by different applications is possible only if you are using a software firewall. I hope it's clear now, isn't it?


    I agree with you but...

    But to open ports below 1024 you need root, If you have root, you can patch the kernel to put your rootkit there (or replace the kernel by your own version). So no one "software firewall" have sense. This software firewall idea is disgusting.

    --Tei
  • nixar (unregistered) in reply to Fake Coworker.
    Anonymous:
    I agree with you but...

    But to open ports below 1024 you need root, If you have root, you can patch the kernel to put your rootkit there (or replace the kernel by your own version). So no one "software firewall" have sense. This software firewall idea is disgusting.

    --Tei


    To bind to ports below 1024 you need root ...
  • maht (unregistered) in reply to Reed
    Anonymous:
    It really would have been far simpler to open a socket and start talking SMTP.  It's really quite easy!


    socket to where ?

    Suddenly you've got timeout issues, DNS issues, concurrency issues

    this is a web application, single threaded,

    write an MTA and tell us how it went


  • (cs) in reply to Fake Coworker.
    Anonymous:
    nsimeonov:


    And again my point was that distinguishing traffic generated by different applications is possible only if you are using a software firewall. I hope it's clear now, isn't it?


    I agree with you but...

    But to open ports below 1024 you need root, If you have root, you can patch the kernel to put your rootkit there (or replace the kernel by your own version). So no one "software firewall" have sense. This software firewall idea is disgusting.

    --Tei

     

    Depends what we're talking about, dude. Definitely you cannot patch the kernel on the VoIP router + firewall I use at home, neither you can do that for Windows... I guess you're talking about BSD and Linux but there are many other firewalls around.

    The software firewall idea isn't that bad for people with one machine at home using it to browse and play games. It's an overkill to buy a CISCO for $15,000 when your machine merely costs $500.

  • (cs) in reply to maht

    Anonymous:

    this is a web application, single threaded,

    Huh? Really? And I always thought web applications can handle multiple requests simultaneously.

  • Maarten (unregistered)

    The other products made by ContextMagic are a WTF by itself... take for instance http://www.contextmagic.com/favorite-shortcuts/.

    In the FAQ, they explain how to open the Quick Launch folder in Explorer:

    As it is considered as a system folder it is quite difficult to get to it using Windows Explorer. Usually the full path to Quick Launch looks very similar to:

    C:\Documents and Settings\<UserName>\Application Data\Microsoft\Internet Explorer\Quick Launch

    Of course if you need to open it once you can do it using Windows Explorer. But if you need to do it routinely, it is better to use our  Favorite Shortcuts software.

              (they don't mention you can just right-click on the Quick Launch area and select 'Open Folder').<br>
    


  • Niels (unregistered)

    I'd like to propose a "there should be an easier way" category for WTF's like these :)

  • davidBarrett (unregistered) in reply to bimbo69
    Anonymous:

    Strange... I thought that SmtpMail used CDONTS

    Ill bet someone else already said this but...

    No it uses CDO.SYS

    CDONTS was phased out after windows 2000

     

    PS CAPTCHA: STFU (seriously!)

  • agh! (unregistered) in reply to ammoQ
    ammoQ:
    Alex Papadimoulis:

    Someone with absolutely no .NET programming experience would take a few minutes on Google, and then reply "SmtpMail class in System.Web.Mail."



    Unlikely. This is the first hit for "programmatically send an email .NET":

    How to send e-mail programmatically by using System.Web.Mail in Visual C# 2005 or in Visual C# .NET

    so why should it take a few minutes?

    A ridiculously large number of programmers never think to look in MSDN or Google Groups.  This guy was obviously one of them.

  • davidBarrett (unregistered) in reply to nsimeonov
    nsimeonov:

    Anonymous:

    this is a web application, single threaded,

    Huh? Really? And I always thought web applications can handle multiple requests simultaneously.

    Yep Me too, Im also more than sure that there is a System,Threading namespace in .net that allows the creation and control of multiple threads in a web app.

  • Maxim Rouiller (unregistered)

    Well... that was a lot of comments!! Somes meaningfull... some just... strange... and others... flaming?

    But hey! that was funny seeing you comments on this "particular" programmer. Hope you enjoy!

    I'll try to get more from this guy since he worked a long time at the company I am right now.

  • TheDoom (unregistered) in reply to Maxim Rouiller

    Yanks eh?

    Would a local IIS installation attempt to send SMTP directly over the internet or look for an exchange server first?

    If I need to open the firewall, will I need a water pole?

  • roshi (unregistered) in reply to TheDoom

    Since enterprises aren't related with charity or social security (not yet) , then I'm sorry for these nice people, but the have to be downsized...
    :|

  • Rob Garrett (unregistered)

    Wow!... and I thought the programmer in my office that wrote his own version of SmtpMail using sockets was a WTF.  Just goes to show. 

    Incidentally, the same programmer (who has since been fired from my organization) installed his own version of Oracle data access layer until we all told him about System.Data.OracleClient.

    R.

  • (cs) in reply to davidBarrett
    Anonymous:
    Anonymous:

    Strange... I thought that SmtpMail used CDONTS

    Ill bet someone else already said this but...

    No it uses CDO.SYS

    CDONTS was phased out after windows 2000

     

    PS CAPTCHA: STFU (seriously!)



    I believe it uses both, depending on the OS.

    see: http://www.systemwebmail.com/faq/1.5.aspx

    A good site. 
  • cakesy (unregistered) in reply to viper
    Anonymous:

    CheckYes essentially merely clicks 'Yes'

    CheckYes Pro mimics YES!!!!!

    ???

     

    CheckYes essentially clicks 'Yes' when you get a Yes dialog.

    The Pro version clicks 'Yes' not matter what dialog - an OK dialog, it still clicks 'Yes', a next of cancel dialog, it still clicks Yes. Not easy to add that extra functionality to outlook.

  • (cs) in reply to duncan_bayne

    duncan_bayne:
    Bus Raker:
    SendKeys is a WTF'ing dream.  It's handy for April Fool's Day jokes and that's all.  


    So, I'm guessing your team isn't big on automated testing, then? :-P

    Why automate testing when you can hire a nice-looking QA analyst for under $30K?

  • (cs) in reply to Bus Raker
    Bus Raker:

    Why automate testing when you can hire a nice-looking QA analyst for under $30K?

     

    So besides looking good is she doing her job well? :)

  • Konrad (unregistered) in reply to JonR800
    Anonymous:
    I'm just going to assume this person had or has zero clue that SMTP exists.
     
    But  i thought there was a tribe of Umpa-Lumpa'a who lived on the internet
    and every so offten one of them would go round to every computer pick up
    the email and deliver it.
     
    Ofcurse they tend to get stuck on ADSL conectiosn becuse its much harder to climb back up the cable when you are carrying a lot of emails.
     
     
  • (cs) in reply to Anonymous
    Anonymous:
    Alex Papadimoulis:

    2004-12-02 13:29 -- Check in code that does the following: Programmatically execute outlook.exe and wait five seconds for it to load up. 



    The real WTF is that he only allowed five seconds for Outlook to load.


    The real WTF is that it took so long for someone to point out that this is the real WTF!  :)
  • Jorge Pereira (unregistered)

    I once had to develop an email client for windows, to integrate with a prototype webbrowser developed for visually impaired users. I recall going through all those steps, plus SimpleMAPI and finally resorting to sending mail using sockets and implementing the propper RFCs.

    Back then it was VB 5 (ergh), so no such .NET class was available.

    Glad to see other people went through the same ordeal. :)

  • (cs) in reply to James Brantly

    <FONT face=Tahoma size=2>In fact, CDO does support, not sending streams, but at least writing to an attachment via a stream.  System.Web.Mail just didn't go to the trouble of writing an interface for that.</FONT>

    <FONT face=Tahoma size=2>One reason for this may have been that they'd need to wrap an ADODB stream with a System.IO.Stream-derived class, and that can cause you headaches - I know, I've done it. :)</FONT>

    <FONT face=Tahoma size=2>A more likely reason is just that System.Web.Mail shows every sign of being thrown together at the last minute, and so only minimal functionality was implemented.</FONT>

  • bart (unregistered)

    There's a name for that kind of programmers: they are called "scripters".

  • (cs) in reply to bart
    Anonymous:
    There's a name for that kind of programmers: they are called "scripters".

    Other names come to my mind, but some of them are PG18.
  • (cs) in reply to ammoQ
    ammoQ:
    emurphy:
    Okay, I don't know .NET, and don't have time to wade through MSDN's voluminous docs to see whether they explicitly explain this.  Does the SmtpMail class leave a copy of the message in your Sent Items folder? 


    IMO it would be a WTF if it did. Some people might have Outlook, Outlook Express, Thunderbird and Eudora installed. Into which "Sent Items" folder should .net put the copy? Some people might decide not to install any of those programs on a dedicated web server. Should sending mails from .net fail because not Outlook is installed?


    The user's default e-mail client as defined in their Windows preferences.  Or the procedure call could optionally specify one.  (Of course, I wouldn't actually bet money on this working right with third-party clients.)

    No client = silently skip that step.

    nsimeonov:

    WTF man... asking to leave a copy in the user's Sent Items folder isn't any better than requesting to make upload and download speeds for ADSLs. Take a deep breath and spend a moment thinking before spitting something as stupid as that - if you need to keep a log file there are much better ways to do - last century people invented databases, or if you prefer - store them somewhere as files, use XML or whatever you like, but another application on user's machines - the least I can say about this approach is stupid..... and we're talking about a WEB application, not a desktop machine so spend a minute and think about it - HOW will users see this Sent Items folder? Hmmm? I guess you will give them the password for the remote desktop to the server, maybe? Totally compromising the security and providing a good source for problems - you can't be sure what people will do besides looking at the Sent Items folder.

    So your ignorance about "MSDN's voluminous docs" and using "inventive" workarounds will cause so much more trouble in the long term than spending a day or two googling the right solution...

    You said you don't know .NET, so what do you use? And since when are you working as a programmer?



    I'm well aware of the hrair ways of keeping a log file, thank you.  I'm just instinctively anticipating the user who naturally asks "but can it work exactly as if I'd sent manual e-mail?" - between the possible answers of "no" / "I don't know" / "yes but please consider these drawbacks carefully", guess which one I'd prefer to be able to give?

    Also note that (1) I asked a question, rather than barging ahead with the quite-possibly-stupid approach (the hallmark of most WTFs), and (2) if this were actually my job then I would certainly spend a day or two googling (and more generally researching), rather than a minute or two.

    I've been programming for about ten years - most of my work these days is in a version of Basic, or with Crystal Reports (a lot of clients don't need more).  Feel free to quiz me if you're still convinced of my cluelessness, I'll do my best to disprove it.

  • Sharp (unregistered) in reply to emurphy

    This is precisely the situation I and my fellow developers were in at my last job.  We used SmtpMail to programmatically create a number of emails in an application that was a successor to our company's core line-of-business app.  We showed it to the company, and they hated it, because they were so driven by Outlook.  They wanted copies of everything the application sent in their Sent Mail.  They wanted all of the capabilities of Outlook's GUI.  They would accept no less.  We told them they'd have to guarantee that all client computers would run Outlook, and that the app would not be able to send emails otherwise.  They weren't interested in supporting any other email clients.  They signed off on it, and we, shaking our heads, got to work.

    So, we used a third-party app (not ClickYes, but Redemption) with the Outlook object model to create emails and bypass the hijack security.

  • (cs) in reply to Konrad
    Anonymous:
    But  i thought there was a tribe of Umpa-Lumpa'a who lived on the internet
    and every so offten one of them would go round to every computer pick up
    the email and deliver it.
     
    Ofcurse they tend to get stuck on ADSL conectiosn becuse its much harder to climb back up the cable when you are carrying a lot of emails.
     
    Well, that's why they bring you all that spam from the home office - to weight them down during the downward climb, so they'll be equally fast (slow) in both directions.
     
  • Code Commando (unregistered) in reply to bimbo69

    System.Net.Mail DOES require CDONTS on the server.

  • Maurits (unregistered) in reply to emurphy
    emurphy:
    I'm well aware of the hrair ways of keeping a log file


    ... for Frith's sake.
  • zooblethorpe (unregistered) in reply to Zlodo
    Anonymous:
    cconroy:
    Volmarias:
    Alex Papadimoulis:

    2004-12-07 16:22 -- Install, on the server, a newly purchased program called ClickYes that automatically clicks "Yes" to those dialogs.

    This was the part that made me literally drop my jaw.



    I don't know which I find harder to believe, despite obvious evidence to the contrary:

    • that such a product exists, or
    • that someone would seek out such a product as the solution to his "problem"


    What I just love is that ClickYes is blantantly sold as something working around a security feature "because it's annoying": http://www.contextmagic.com/express-clickyes/

    Version 2.2.1. I'm tempted to download it just in the hope that the change log is included, to see how they could make so many revision of that thing.

    It even got an API: http://www.contextmagic.com/express-clickyes/free-version.htm

    This is depressing.

    Think it through -- of course it's got an API, this is the perfect tool for a greenhorn spammer setting up a simple spambot via Outlook.  What other motivation could there possibly be here? 
  • I'm Feeling Lucky (unregistered)

    Alex Papadimoulis:
    Someone with absolutely no .NET programming experience would take a few minutes on Google, and then reply "SmtpMail class in System.Web.Mail."

    Not any more, they wouldn't, they'd say: "WTF"

    http://www.google.com/search?hl=en&q=programmatically+send+an+email+in+.NET&btnI=I'm+feeling+Lucky  <FONT color=#000000>==</FONT> http://thedailywtf.com/forums/thread/76850.aspx

    Captch := paste

  • (cs) in reply to nsimeonov
    nsimeonov:

    Ahh I'm getting pissed off... you either didn't read my entire posting or just read a couple of words of it and assumed the rest. What I said (and keep repeating in at least 3 posts) is that DISTINGUISHING traffic from different applications on a machine is possible ONLY using a SOFTWARE FIREWALL. Hardware firewalls CANNOT figure out what application generates the traffic. So do we finally agree on that?

    I don't think anyone disagrees with that, they're just saying it's irrelevant. The firewall doesn't care what application is creating the traffic, only that outbound SMTP email is coming from a legitimate mailserver machine, not from a random workstation running somebody's Java coursework.

    nsimeonov:

    Ok and since I was arguing that the case someone described Outlook can send email and the student's java app doesn't is IMPOSSIBLE. Either all applications can communicate with the mailserver or there's a software firewall. Do you agree?

    I can't speak for 'Anonymous', but I don't fully agree. Both applications can send packets at the Exchange server, but only Outlook can 'communicate' with it. Outlook and Exchange don't speak SMTP as a primary language - they're 'office memo' programs that had Internet email facilities grafted on some time after they were first released. Thus while it may be possible for Exchange to receive and forward SMTP mail (as well as just send it outbound from the organisation), that facility may well be turned off.

    Hence, the situation as I see it is that the original poster's Java program cannot send SMTP to an external Internet mailserver because the organisation's firewall blocks SMTP from random workstations. The Java program cannot send mail via the approved internal mailserver either, because the mailserver only responds to proprietary Exchange-formatted messages, and with the tools available to them the developers could not generate those. So their reasonable-in-the-circumstances hack was to script Outlook on the local machine to send magic Exchange messages to the approved Exchange mailserver, which identified that they were address off-site and so converted them into SMTP and sent them to an Internet mailserver as permitted by the firewall.

    Clear?

    Pete

  • (cs) in reply to Rugrat

    Rugrat:
    I can't speak for 'Anonymous', but I don't fully agree. Both applications can send packets at the Exchange server, but only Outlook can 'communicate' with it. Outlook and Exchange don't speak SMTP as a primary language - they're 'office memo' programs that had Internet email facilities grafted on some time after they were first released. Thus while it may be possible for Exchange to receive and forward SMTP mail (as well as just send it outbound from the organisation), that facility may well be turned off.

    Hence, the situation as I see it is that the original poster's Java program cannot send SMTP to an external Internet mailserver because the organisation's firewall blocks SMTP from random workstations. The Java program cannot send mail via the approved internal mailserver either, because the mailserver only responds to proprietary Exchange-formatted messages, and with the tools available to them the developers could not generate those. So their reasonable-in-the-circumstances hack was to script Outlook on the local machine to send magic Exchange messages to the approved Exchange mailserver, which identified that they were address off-site and so converted them into SMTP and sent them to an Internet mailserver as permitted by the firewall.

    I don't agree. SMTP is a standart protocol and it works in two ways - it sends outgoing mail from your internal network (actually everyone who has permissions to connect to the mail server and for every sender who is permitted to send emails) or to receive emails from external networks. So if you can connect to the mail server you may deliver an email to some of the users of the domains managed by this mail server or you may send email to everyone else on the net if you are authorized to.

    A mail server may use different protocols as well it's not just smtp. But by serching the net you may find information about the MS Exchange Server's protocols and how to use them. I realize that for the java project these students did it good enough because that's what was in the task - send email. Noone specified HOW so using outlook was good enough. However I cannot agree this would be the ONLY WAY to send emails on these systems. Yes it requires some more efforts and perhaps using raw TCP/IP communication to achive what's neccessary, but my point is that it's possible to send email without using Outlook.

    Also if it isn't clear enough in the task I would use the standart SMTP protocol and deliver the task as it is even if it doesn't work in the university network because there wasn't any specification about that - it's a matter of setup and if it wasn't clear enough in the task I would just pull out my laptop, dialup any provider from my cell phone and prove that my program is working properly and the problem is in the network setup. If the task definition didn't include "send an email to our exchange mail server in the university using the MS Exchange protocol, not SMTP" then it would be ok. Yes I was a student 10 years ago and yes I kept arguing with my teachers about vague task definitions and they actually respected me for that, because I was actually thinking and I was understanding these stuff, not just trying to "cheat around" as half of my co-students just to graduate, no matter if they learn something or not.

  • (cs) in reply to Bus Raker
    Bus Raker:

    duncan_bayne:
    Bus Raker:
    SendKeys is a WTF'ing dream.  It's handy for April Fool's Day jokes and that's all.  


    So, I'm guessing your team isn't big on automated testing, then? :-P

    Why automate testing when you can hire a nice-looking QA analyst for under $30K?

    Cause that way the nice-looking QA analyst spends less time analysing QA and more looking nice.

  • Blah (unregistered) in reply to Jeff S

    Damn, wish I'd have found this when it was posted.

    The major WTF that everyone has missed is the Outlook security update itself. It doesn't work. At all. A quick google will find you some white papers that demonstrate a method to bypass the security mechanism from the exact scripts the update was meant to stop.

    The entire update is a nightmare - overnight Microsoft broke the majority of useful Outlook add-ons. I ran into this a while ago, after researching this issue and finding how difficult it would be to port the existing (working) system to the new Microsoft-patch-compliant way of doing things, I just added 10 lines of code to kill the security warning dialog. And, as usual, the MSDN documentation for doing C++/Outlook is below poor.

    If you haven't actually done C++/Outlook/Automation etc yourself, you have no idea how bad it is. Bypassing an irrelevant security mechanism is the least of the issues. It is, in fact, so difficult that some guy (not me, not an advert, never used it) has coded Outlook Redemption (http://www.dimastr.com/redemption/) to make it easier. He can easily justify the $200 price tag.

  • WolfBane (unregistered) in reply to Sharp

        er uh, lets see now.....

    in the beginning there was  MAPI
    then SMAPI
    then Outlook automation  (aka Look Out!!)
    then CDONTS
    then CDOSYS
    then System.Web.Mail
    then SysteNet.Mail


    are you guys DOT NUTs???
    the real WTF is that you are buying into Micro$oft$ Insanity
    it is horrible way to do anything.   This is exactly the sort of thing that caused me to get sane and get GNU/Linux instead.

    I can't speak for the rest of the APIs above, but back in the days when I too was in the grip of Microsoft$ Madnesss and needed to send an email, I studied both the MAPI and the CDONTS APIs and I can tell you they are horrible convoluted gwad aweful messes with huge complexities and many bugs. 

    I found it was much easier and a heck of a lot less complex to simply open a socket and send the SMTP direct.  It's a very simple protocol.

    It also meant they my program would continue to work, and I would not have to rewrite it everytime that Microsquish came out with a new operating system or decided to upgrade their API or patch a security bug....

    Microsquish constantly breaks your apps...  well i guess if you get paid by the hour to fix the broken apps, it might actually be benificial to your wallet.


    As for the "must be Outlook" shop above, well what about using CC to send them their precious email copy and then using a message rule to direct it to a folder???


    Now in PHP (which also runs on windoze by the way), you can do the whole email thang with one function call and no screwball structures.  or gawd aweful hacks....


  • (cs) in reply to WolfBane

    Anonymous:

    are you guys DOT NUTs???
    the real WTF is that you are buying into Micro$oft$ Insanity
    it is horrible way to do anything.   This is exactly the sort of thing that caused me to get sane and get GNU/Linux instead.

    ... and so on and so on... bullshit after bullshit, but it really makes clear you are l33t by adressing microsoft as Microsquish, Micro$oft$ etc.

    Nice. 

    So what you said is that you couldn't get the API working, eh? Too hard for you? And then you decided to open a TCP connection and talk to the SMTP server yourself. I actually know guys like you who tried to tell me that the (old/usual) php way of coding (a.k.a. spaghetti script - all in one source - javascript, html, server-side script - all mixed up) and also you better use a plain text editor without any highlighting because noone really needs it. This guy now is working for me using Visual Studio and admits it's the best development environment around and although he thinks the spaghetty type coding isn't as bad as I think he agrees that it's easier to maintain when code, design and client side scripts are separated.

    Did you ever investigate what the pros and cons are when you compare PHP and ASP.NET? I really love the part when you have to put a $ sign in front of every variable...

    Don't have the time to keep writing, but let the flame war begin, it's a good start by now.

  • WolfBane (unregistered) in reply to nsimeonov
    <font face="Arial" size="2"><font face="Times New Roman" size="3">
    nsimeonov:
    </font></font>

    <font face="Arial" size="2">

    WolfBane:
    </font>

        er uh, lets see now.....

    in the beginning there was  MAPI
    then SMAPI
    then Outlook automation  (aka Look Out!!)
    then CDONTS
    then CDOSYS
    then System.Web.Mail
    then System.Net.Mail

    {{and of course the sendkeys hack}}

    <font face="Arial" size="2">are you guys DOT NUTs???
    the real WTF is that you are buying into Micro$oft$ Insanity
    it is horrible way to do anything.   This is exactly the sort of thing that caused me to get sane and get GNU/Linux instead.

    </font>

    <font face="Arial" size="2">... and so on and so on... bullshit after bullshit, but it really makes clear you are l33t by adressing microsoft as Microsquish, Micro$oft$ etc.</font>

    <font face="Arial" size="2">So what you said is that you couldn't get the API working, eh? Too hard for you? And then you decided to open a TCP connection and talk to the SMTP server yourself.
    </font>

    <font face="Arial" size="2">Don't have the time to keep writing, but let the flame war begin, it's a good start by now.</font>

    <font face="Arial" size="2">


    Okay, I shall respectfully try to avoid a flame war.  they serve no purpose. 
    Agreed I was venting a bit, but it's because I have endured so much pain from being squashed by good ol MS and their arbitrary Updates which hose computers, and the constant <em>abandonment</em> of APIs and <em>Languages</em> (things that are <em>Sharp</em> usually hurt... :-).  

    The multitude of dollar signs in the previous post, are a way to express my disgust with the Rip-Off nature of MS pricing strategy.  <strong>Think about it, how did they get to be the richest company around???</strong>  It's because they charge two arms and a leg for their software.  They get you hooked like an addict needing to feed your addiction, once you are locked in, it is very hard to free yourself. 

    How much do they charge for their server software?  That'll be $800 please... oh and did you want any users to be able to connect to that server?  it will be $200 extra per user.  And did you want WTS remote access?  That will be extra too; SQL Server?  we've got a special on it, only $1000 today (regular price is $5000), but if you want any clients to connect to it you will of course have to pay extra.  Web server, no problem, we give that to you for free, did you want anyone to </font><font face="Arial" size="2"><em></font><font face="Arial" size="2">be able to actually connect</font><font face="Arial" size="2"></em></font><font face="Arial" size="2"> to the web server?  you must buy a per user license or our special internet package.   An email server?  I think we could let you have it for about $2000... but users are extra and you have to buy SQL Server.  etc etc etc.   </font>
    <font face="Arial" size="2">
    ------------------
    </font>
    <font face="Arial" size="2">Oh and by the way, you also have to sign this agreement which gives us permission to spy on you and to modify the software whenever we want and to install whatever we want onto your system.  <strong>Can
    anyone say HIPAA violation???</strong>
    </font>
    <font face="Arial" size="2">
    And for no additional charge Microsoft's Automatic Update will randomly destroy your operating system and force you to reinstall everything from scratch.  <strong>Think I'm joking/exaggerating?  I've got a dead XP computer right now, that Microsquash Update Destroyed.</strong> The reason I found this site is because I was searching/hoping for some advice on how to fix it without a total reinstall.</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">------------------</font>
    <font face="Arial" size="2">
    <strong>Suddenly that $2000 piece of server hardware needs $10000 worth of software and all of it pure profit for Microsoft$</strong>  It costs them about $5 to deliver the CD.    I'm not against making an honest profit and earning what you are worth, but their products simply do not deliver the value that they claim.  The obscene profits would not be so obnoxious if you actually got bug free reliable code with decent support;  but you don't get anything like that at all.  It is riddled with bugs, crashes a lot, gets lots of viruses, and support will cost you major bucks, and usually is not very helpful, because the support people don't have the ability to fix the bugs. --  What do you mean Bugs?? those are features!!   </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2"><strong>On the other hand I can download Linux for free</strong> or I could shell out as much as $30 for a fancy set of CDs; or go whole hog and pay $800 to Red Hat or Novell or IBM, for their Enterprise version, which will get you a ton of support including bug fixes.</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">Whichever GNU/Linux package I choose (from free to $800), I get all of the above software  that Microsoft charges $10k for, plus a whole lot more.  And I get it without any restrictions on numbers of users who can access the programs; I control what version of the software gets installed and when.  I also get it without built-in (anti-piracy) spyware.  </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">I also don't have to spend an hour on the phone trying to get permission to reinstall the software every time my hard disk crashes or I decide to upgrade the computer, or when Microsoft's Automatic Update destroys the operating system.</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">And Linux security is great (not perfect, but great); unlike the fundamentally flawed Microsoft design which puts out a welcome mat to every virus in the universe.  (see details below)

    </font>
    <font face="Arial" size="2">===============</font>
    <font face="Arial" size="2">
    <strong>For the record, I have actually worked for Microsoft.  I worked there for five years.</strong>  I was on both the Exchange team and the Word team...  I have also written my own email server from scratch, over on the Linux side of the fence.  <em>So uh gee, guess I do happen to know just a teensy weensy bit about email programs.</em>
    </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">--------------</font>
    <font face="Arial" size="2">Typical of Microsoft Quality:

    Fact:  Microsoft Word usually ships with about 20 to 30 thousand documented bugs, many of which will corrupt your document or otherwise cause a feature not to work.  Nearly all of these bugs have been declared to be "By Design".  The prevailing attitude is that if we shipped it in a prior version and did not get x hundred thousand complaints about the bug, then it is okay to ship it again.  </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">After one particular ship cycle, the managers were gleefully patting themselves on the back about how few complaints they were getting; "We have done a great job!" they declared.  Curious, I grabbed a copy of the RTM bits and installed it, pretending I was a customer with a problem, I tried to find the support number.  The phone number was so deeply buried that I wondered how anyone had managed to find it at all.  It was a classic case of an ostrich with it's head in the sand.  And very typical of the Microsoft corporate culture.  Take this for what you will, but my observation as an insider, is that <strong>Microsoft is a fundamentally arrogant company that really doesn't give a fig about it's customers.</strong>  This attitude was a major reason in my decision to leave. 
    ---------------</font>
    <font face="Arial" size="2">
    </font>
    <font face="Arial" size="2">Have you ever actually looked at the CDONTS API ??   admittedly my memory of it is foggy, it's been many years since I looked at it, but what I distinctly recall was the huge complexity needed to init and deinit the API and pass it the message.  CDONTS is a kitchen sink kind of API and the bane of it is that you must describe the entire kitchen in excruciating detail, when all that you really want to do is to replace the washer in the faucet.</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">I looked at that humongous insane mess and my experience as a programmer told me that there had to be a better way, and there was.  <strong>Why write 600 lines of complex interface code when you can achieve the same result with 30 simple lines?  And why make yourself dependent on a proprietary standard that Microsoft will abandon at their whim</strong> and which has already been changed about 7 times; when you can write a program that conforms to IETF international industry standards? 

    My clear conclusion at that time, was that the code/effort required to use the CDONTS API was considerably greater than the code/effort needed to use SMTP directly.  And that is upside down to what an API should be doing for you.
    </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">The SMTP protocol for sending a message consists of 4, count em four commands.  And this hasn't changed in about 20 years, compatibility is assured.  It doesn't get any easier than that.  And you can use an io stream for the message if you like, it doesn't care....  </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">helo</font>
    <font face="Arial" size="2">mail from:</font>
    <font face="Arial" size="2">rcpt to:</font>
    <font face="Arial" size="2">Data</font>
    <font face="Arial" size="2">(your message goes here)</font>
    <font face="Arial" size="2">.</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">Now how the frack can you convert something that simple, into something which is as endlessly convoluted, as what the never ending succession of Microsoft APIs have made it?  (Yes, I know there is an "ehlo" variant,  but you don't need it to send an email, this SMTP protocol will work, now and in the future, unlike the Microsoft API which will change once again, and be given poor to no backwards compatibility once again).  <em>And yes, an Exchange server does accept SMTP or else it would not be able to receive email from the internet.</em>
    </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2"><strong>Microsoft is a dinosaur, it is huge, cumbersome; and compatibility is a nightmare.</strong>  Your programs are written in quicksand which is constantly shifting as you are forced from one upgrade to the next.  You must navigate minefields of bugs which are seldom fixed and constantly blow up in your face.  The multi-tasking and stability are horrible.   And the cost$ is extreme.</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">With GNU/Linux on the other hand, you control what and when to upgrade.  The stability is rock solid, the bugs are few and far between and usually fixed quickly.  And if the fix isn't coming quick enough, you always have the option to dive in and fix it yourself.  The multi-tasking performance is fantastic!!!  And the cost is only what you choose to pay.</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2"><strong>Microsoft just does not "get" the concept of multi-tasking.</strong>  I did not fully appreciate this until after I had been using Linux for awhile and saw for myself how a "real" multi-user multi-tasking operating system behaves. </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2"><strong>Microsoft also does not "get" the concept of security.</strong>  The insistence that every program (including viruses) has write access to the system directory is insane.  The insistence of developers putting writable data files into their app's program directory is equally insane (but considered standard procedure).  The difficulty of backing up the operating system (and app data) is beyond belief.  And the insistence of Microsoft in creating all sorts of hidden areas of the disk that only the operating system and viruses are allowed to access, but administrators cannot access these areas when needed...  well, <strong>it's like having a built-in root kit.</strong>  And the insistence of having ten billion open ports doing all kinds of undocumented things, and your not being able to shut them off without breaking OS functionality; <strong>well that is just outrageously bad design</strong>, which gets worse with every new version.  No wonder every windows server is a sitting duck for every virus that comes along, and is an endless patching nightmare.  I shudder to think that Banks actually use this stuff.
    </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2"><strong>These are fundamental design flaws that no amount of patching can ever truly fix.</strong>  And Microsoft is stuck with this insecure design, now and forever more, because they still attempt to maintain software compatibility even though they often fail.  You see, if Microsoft decides to start over with a totally new (incompatible) design -- which was their originally announced intention with Vista/Longhorn -- then they know that faced with the prospect of a total rewrite of your software, you are just as likely to jump to Linux as to migrate to the </font><font face="Arial" size="2"><em></font><font face="Arial" size="2">new and improved</em> but more buggy then ever before version of Windows (a totally new Windows design would be a 1.0 product and it always takes them 3 versions to get it working -- versus Linux, which is now a very mature product and keeps getting even better).  <strong>And I believe that this is the real reason Microsoft back-peddled on Vista,</strong> and decided to turn it into just a prettier version of XP -- more eye candy, and more built-in spyware (DRM and anti-piracy, features which do not benefit the customer but only makes things more difficult), but with no (few?) truly useful changes.  And it's just as insecure as ever before, because they can't change the structure without breaking <em>all</em> of the apps;  Plus the design spec for Vista changed so many times during it's development that it is likely to be an abomination.  </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2"><em>(When figuring the True Cost of Windows, you MUST include the cost of viruses, and endless patching, and the need to reinstall the Windows operating system after it self destructs either from normal use, or from security updates; all of this on top of the already huge cost$ for the software itself.  and don't forget the cost of dealing with their anti-piracy krap -- Still think that Microsoft is cost effective when compared to Linux??  look closer.).</em></font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">There is probably a really good reason that all of those high profile people (such as Scoble) have been leaving Microsoft recently.  It's probably a case of the rats abandoning the sinking ship, and wanting to get out before it becomes obvious that the ship is sinking....  Not that Microsoft is going to disappear, but they are finally and deservedly going to lose their stranglehold on the market.</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">=================</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">Just to clarify my position/motivation.  I am not a disgruntled ex-employee, spewing a bunch of sour grapes.  Far from it.  I did not learn to dislike Microsoft OSes until after I left and tried to develop commercial software to run on Windows.  The minefields of bugs and compatibility nightmares are all things that I have had direct painful experience with.</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">A person can only be a masochist for so long...  one day you wake up and realize that "gee, maybe I don't have to keep beating my head against the wall.  Maybe there is a better way?"</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">And after years of being in the Microsoft camp, and going insane with the endless battles to get buggy APIs to work the way that the docs say they are supposed to work; And rewriting several of their libraries in order to bypass their bugs.  And hoping that the API would still be available <em>and work the same way</em> in the next version of windows (which it often doesn't);  And the attempt to write programs that weren't horribly bloated.  I finally woke up and realized that there had to be a better way.  </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">So I started looking at GNU/Linux and mySQL and LAMP etc...  and saw that it was good. 
    And yes the learning curve was steep, but it was worth it!  And learning the new system was far cheaper than paying for, and bleeding for, the krap that Microsoft keeps shipping.  In the long run, I am way ahead of the game.  And people can either join this revolution or get left behind.

    </font><font face="Arial" size="2">Microsoft may be the company that owns/created/controls  "The API"....   But they are also the company that destroyed "The API" by constant incompatible changes and an attitude that says, "We don't have to fix the bugs, nobody uses that feature anyway, it's just there to score a checkmark in a magazine review."
    </font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">And if you think that Vista is going to be fully compatible and stable and bug free, after all of the kludging and spec changes that it has been through....  boy have I got a great deal on the "Brooklyn bridge" for you....</font>
    <font face="Arial" size="2"> </font>
    <font face="Arial" size="2">

    </font>
  • (cs) in reply to WolfBane

    Huh? You got a computer "destroyed" by Windows Update? That would be the first case I hear about something like this. The new WGA causing problems to illegal windows users maybe? Although it doesn't destroy anything just displaying an annoying message and having you wait for 5 seconds before you can actually logon?

    No software is bug free. EVER. The only software that may be bug free would be a program displaying "Hello world!" even solving an equation may contain bugs because of the binary representation of floating point numbers. (10/3 ) * 3 isn't exactly 10, is it?

    Please check the prises of the DataCenter editions of linux and windows and we're going to talk again. I remember checking how much would it cost to get a cluser of servers working with linux and windows and having a descent database and I remember it was cheaper to get windows... correct me if I'm wrong please.

    For linux except using Java could you recommend using a development IDE to build desktop applications that can be compared to Visual Studio or Borland Delphi? Anything even close and as integrated as these 2 are? (Building forms with a designer, handling user input, etc) Please don't tell me to chose one of the million free programs because that sort of adds to the confusion. Or that in order to get a form running I have to write about 500 lines of code and use 5 different programs to design the form, generate some code, use another editor to modify the generated source code or put my code in another file and then having to write some script in order to call 10 different command line compilers, linkers, whatever until I actually get some executable then use a different program to debug it.

    This attitude was a major reason in my decision to leave

    So you are saying it wasn't because you didn't like the colleagues or the salary or anything else but because they were mistreating their customers? Doesn't sound right to me... with the attitude of most linux support forums "Hey it's free, why are you complaining? You didn't pay a dime for it dude!" or "Do your homework, dude! You must read more books and make sure they are thicker! We don't have any the time to waste with you - go to the bookstore and buy the 10 thickest books about UNIX you can find and come back after you read them! Who cares that it took you 3 days to get the video card drivers working? We all did - get used to it! Next time you will know how and it will take you only 3 hours".

    A descent setup of Borland's Kylix was like unzipping a bunch of files in some default directory using a command tool without creating any "shortcuts" (excuse me for using M$ terms) on the desktop, but who cares? Everyone is used to launching programs using the command line or by browsing all the way to the executable and only the laziest ones create shortcuts...

    About the SMTP commands: what about security and logging into the SMTP server? I remember linux guys who didn't use the API because of "issues" and instead saving files in the mailer daemon's output queue directory. Please don't tell me everything in linux didn't change during the years and you could get all the code written in the 90ties to work with the latest release of RedHat? I remember complaints about stuff not working with the latest release on of the local forums here and other people explaining workarounds or being sorry for people who want to get the latest distribution but having to wait until their favorite applications are finally ported.

    By the way, sending a mail using System.Net.Mail takes about 5 lines of code and it's perfectly clear what to do even if you never used it but you barely have any idea what SMTP is and how to use it. Examples are everywhere and the online help is providing one. So what it takes is to press F1 and search for "mail".

    Your complaints about Vista not being 100% compatible sounds to me like complaints from Windows 2000 not being able to run applications that used to work on Windows 98 using low level IRQ and PORT communication and people screaming out loud that 98 is much better than 2000 because of that and 2000 is just a marketing trick to get more money by having to rewrite old programs. And that noone actually needs the driver signature. But to everyone's surprise if you don't install all the shitty drivers written by indian or chinese students it really works stable. So it isn't Microsoft to blame this time because of writing such an unstable operating system.

    I admit there's some truth in what you say but you really exaggerated a lot and as usually the devil isn't as black as people paint it (read as Windows isn't as bad as Linux fanatics tell it is).

    My experience with Linux is that nothing works at all until you actually spend a week tweaking it using the command line and once it stops (I had to support a server with RedHat and Linux and MySql suddenly ceased to start automatically at startup) it's all your fault because you misconfigured something eventhough you didn't touch the machine for over a month as in this case just it's power went down one night and next day the services just didn't start automatically and that's it. Had to reinstall everything to get it working again. So reinstalling isn't reserved only for Microsoft's products.

    Regards,
    Nikolay

  • (cs) in reply to nsimeonov

    For the most part I have to agree with WolfBane. The biggest advantage imho of open-source software is that it makes for MUCH easier debugging. Knowing that your program crashes when you call SomeAPISomeFunction() doesn't tell you much. Having the source so that you can step into that function and see where and why it crashes is very helpful. Sure, you can always use the disassembled output, but that's usually a little complex for my taste.

    nsimeonov:

    My experience with Linux is that nothing works at all until you actually spend a week tweaking it using the command line and once it stops (I had to support a server with RedHat and Linux and MySql suddenly ceased to start automatically at startup) it's all your fault because you misconfigured something eventhough you didn't touch the machine for over a month as in this case just it's power went down one night and next day the services just didn't start automatically and that's it. Had to reinstall everything to get it working again. So reinstalling isn't reserved only for Microsoft's products.


    You've had bad experice with linux because you are new to linux. You did NOT have to reinstall ANYTHING. You did so because it was the easiest and quickest route given your limited knowledge of the operating system. I'm sure you did not want to spend a couple days scouring forums looking for help, as a re-install would fix the issue and can be done in under an hour. Sure, your knowledge of the OS doesn't progress, and you don't learn anything, but you get the job done as quickly as possible and that is what you are bing paid to do.

    If it were gentoo, all you would have needed to enter is:
    rc-update add mysql default
    Then, the mysql service would always start on boot, when the system entered the default runlevel.

    Don't bash what you don't know or understand.

  • (cs) in reply to GoatCheez

    GoatCheez:
    You've had bad experice with linux because you are new to linux. You did NOT have to reinstall ANYTHING. You did so because it was the easiest and quickest route given your limited knowledge of the operating system.

    Actually I tried. Looked in the settings and thus it wasn't starting during the boot. Once a user logs on and clicks the start manually then it was ok. I had a similar problem with windows and the driver for the 3com gigabit network card and a program that tried to access network resources and crashed because the network drive didn't reconnect immediately eventhough the network card had static IP etc. No reasonable explanation except that the driver needed some time to initialize properly the hardware and the program should start about 20 seconds later, not immediately during the boot. It wasn't happening always and I guess it's the same for mysql but it was starting as a service and shouldn't be accessing external resources and it worked for a couple of months before it stopped...

    GoatCheez:
    I'm sure you did not want to spend a couple days scouring forums looking for help, as a re-install would fix the issue and can be done in under an hour. Sure, your knowledge of the OS doesn't progress, and you don't learn anything, but you get the job done as quickly as possible and that is what you are bing paid to do.

    What you describe is exactly the same for Windows too.


    GoatCheez:

    If it were gentoo, all you would have needed to enter is:
    rc-update add mysql default
    Then, the mysql service would always start on boot, when the system entered the default runlevel.


    Except if it starts and stops immediately during the boot...

  • (cs) in reply to nsimeonov

    I think I'm one of the last living creatures that thinks that servers should never have a GUI.

  • (cs) in reply to GoatCheez

    Agreed. Mikrotik is a good example. There's a program providing a GUI interface but it's accessible only on the client machines. And if you know what you're doing a command line is a lot faster. Besides it always works and doesn't depend ot screen resolution, font size etc.

  • (cs) in reply to nsimeonov

    Anyone have a copy of ClickNaN v2.3 ?  I have this dialog that is bugging me ...

Leave a comment on “The Trials and Tribulations of Programmatic Email”

Log In or post as a guest

Replying to comment #:

« Return to Article