My application is a .NET Windows Forms client, one of whose functions is to allow the user to send personalised mailshot emails to opted-in recipients stored in the database.
The emails are sent using the .NET System.Net.Mail classes, from the client computer on which the application is installed, directly to an SMTP server within the client's firewall.
The customer secures this relay by:
- specifying the computers that are permitted to send the emails
and optionally by:
- specifying that the client application provides user/password credentials.
Of about 30 customers, one is unhappy with this arrangement on the grounds that:
- if the client machine became infected with suitable malware, it would be possible for the permitted computers to act as spam relays.
Now, I realise that in theory, malware that contained a password grinder could eventually break the user/password credentials. However, Outlook is already permitted on the client computers, so I don't understand why (given the existence of libraries such as Outlook Redemption), if allowing Outlook to send mail is safe, allowing my company's application to send mail is any less safe.
Would appreciate any pointers.
Edit:
Thanks for the replies so far... if I could add a supplementary:
I notice a couple have pointed out that Outlook doesn't use SMTP. However, neither does Outlook Redemption, a perfectly legitimate COM class library that allows, AIUI, authenticated MAPI communication to Exchange servers.
So if malware that had taken over the client machine could eventually grind out a password, and bypass (as does Outlook Redemption) the Outlook object model, and hence Outlook's security against programmatic access, could it not wreak plenty of havoc?
My question is really not so much about absolute safety - clearly that's never achievable - it's whether if there's a concern about getting malware at all, why would my authenticated application be any less safe than Outlook.