- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Admin
So, I'm guessing your team isn't big on automated testing, then? :-P
Admin
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
Admin
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).
Admin
Given all the evidence, I'm just going to assume this person had zero clue, period.
Admin
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?
As well as MAC address, destination IP address, timeframe etc.
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?
ExactlyOh 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?
No doublt about that.
Admin
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
Admin
To bind to ports below 1024 you need root ...
Admin
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
Admin
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.
Admin
Huh? Really? And I always thought web applications can handle multiple requests simultaneously.
Admin
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:
Admin
I'd like to propose a "there should be an easier way" category for WTF's like these :)
Admin
Ill bet someone else already said this but...
No it uses CDO.SYS
CDONTS was phased out after windows 2000
PS CAPTCHA: STFU (seriously!)
Admin
A ridiculously large number of programmers never think to look in MSDN or Google Groups. This guy was obviously one of them.
Admin
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.
Admin
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.
Admin
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?
Admin
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...
:|
Admin
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.
Admin
I believe it uses both, depending on the OS.
see: http://www.systemwebmail.com/faq/1.5.aspx
A good site.
Admin
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.
Admin
Why automate testing when you can hire a nice-looking QA analyst for under $30K?
Admin
So besides looking good is she doing her job well? :)
Admin
Admin
The real WTF is that it took so long for someone to point out that this is the real WTF! :)
Admin
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. :)
Admin
<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>
Admin
There's a name for that kind of programmers: they are called "scripters".
Admin
Other names come to my mind, but some of them are PG18.
Admin
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.
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.
Admin
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.
Admin
Admin
System.Net.Mail DOES require CDONTS on the server.
Admin
... for Frith's sake.
Admin
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?
Admin
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
Admin
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.
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
Admin
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.
Admin
Cause that way the nice-looking QA analyst spends less time analysing QA and more looking nice.
Admin
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.
Admin
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....
Admin
... 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.
Admin
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>
anyone say HIPAA violation???</strong>
</font>
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>
<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>
<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>
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>
</font>
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>
</font>
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>
Admin
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.
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
Admin
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.
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.
Admin
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...
What you describe is exactly the same for Windows too.
Except if it starts and stops immediately during the boot...
Admin
I think I'm one of the last living creatures that thinks that servers should never have a GUI.
Admin
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.
Admin
Anyone have a copy of ClickNaN v2.3 ? I have this dialog that is bugging me ...