Accessing an Exchange Server without Outlook - email

Is there a method of accessing an Exchange server that does not have IMAP or POP3 enabled without Outlook?
It does not appear that Outlook Express supports Exchange (only IMAP and POP3).

The only way I can think of is if the Exchange server has Outlook Web Access (OWA) turned on. You can test this by trying the server name in your browser like so: http://server/exchange.
If you mean programmatically then the recommended way is to use WebDAV (which is what OWA uses).
#Jon I think the method you linked to uses IMAP.
Edit: #Pat: SimpleMAPI is the protocol that allows applications such as Word etc to talk to your email client, not your email client to the server - ExtendedMAPI is needed for that, which Thunderbird doesn't support.

The Outlook Web Access URL is more likely http(s)://server/owa
Exchange 2007 is SSL only by default.

There's also Exchange Web Services in newer versions of Exchange.
If you need to use Outlook Express and talk to an Exchange server which doesn't support IMAP/POP3, you're stuck, sadly.

I know thunderbird and eudora have support for SimpleMAPI so they can talk to an exchange server but the command set of what they can do is rather basic (you need Extended MAPI support for the whole set)
afaik Outlook is the only windows client with full support for Extended MAPI.

You can use Thunderbird to access Exchange e-mail and contact lists.
Edit - Oops, this uses IMAP, didn't answer the question.

If you're willing to consider a major change, you could look at Snow Leopard's support of Exchange through iCal and Mail programs. I find it isn't as robust as outlook (expected), but it gives me better off-site performance as the RPC protocol isn't active through TCP/IP connections on our server. I find that the RPC via VPN or HTTPs to both be immensely slow. Mac Exchange to the rescue, unless I'm on my windows box, then it's Outlook Web Access (aka "owa" aka webmail).

Yes! You can use ExQuilla plugin for Linux (How to guide) to access Exchange 2007/2010 email and address book. Original reply

Related

How does a Mail Client (like thunderbird) work?

I am thinking of creating a mail client as a side project and wanted a brief overview of how they work. A few issues I was thinking of are:
How do they connect to SMTP servers (My guess is by using built in libraries)?
Where are mails stored?
How are passwords encrypted?
How do they check if computer is connected to internet?
Your question is too broad to answer here. But you may check the following titles to get an initial idea.
First of all you should learn how the SMTP protocol works. It is old and stable, so this is easy to manage. You may start by reading [wikipedia's SMTP title] (http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol) . In fact there exists a full SMTP transport example, which you can try with a working smtp server after establishing a telnet connection.
Also, as you want to implement a mail client, you should learn about IMAP and POP3 by reading related wikipedia titles and its references.

Possible to use server for collecting and distributing mail

We currently have POP3 mail accounts where I am and try as I might to convince my manager that we should be using hosted IMAP or Exchange he won't budge because of the cost. The staff are mostly out of office so there is no domain server here, however, we do have a dedicated server and I wondered whether I could use this to collect the mail and distribute it from there in some way.
Effectively what I'm trying to do is ensure mail is stored somewhere other than the end users machine because backups are user dependant at the moment. With hosted Exchange or Exchange on this server would be simple but my manager won't shell out for it. I have seen free mail servers called MailEnable and Axigen but unsure if they will do the job. Sorry if this seems like an easy or stupid question but never needed to do this before.
I am assuming due to the reference to Exchange that you are on Windows.
If you have an old box lying around that works, you could install linux on it and then choose from a number of different imap servers. Dovecot and Courier are both good choices and I have worked with them before.
You could use fetchmail to then pick up the mailboxes and then deliver to the imap boxes or get them deliver directly.
Setting up such a linux server for email was one of the first things I ever did on Linux. While initially daunting, once you get the hang of it, it is pretty straightforward and there are plenty of resources out there to help.
Ubuntu is probably the easiest to get used to. CentOs is also a reasonable choice.
You shouldn't be running your own server if you aren't willing to administer your own server, and they are not easy to configure if you don't know what you are doing (e.g., you mess up and you are exploited for spamming).
Look into a service like mailgun. In my application we are using them for forwarding to REST endpoints as well as onto another SMTP server.
Competitors that wound up not meeting my needs but may meet yours include Dyn, email yak, Sendgrid, etc. etc.
Why not just setup the mail clients to store their mail files on a standard network drive or share? I follow that this situation is pretty silly in your view - 100% because of the ridiculous constraints that you are being asked to work within: I would similarly find the solution I am suggesting ridiculous generally; but under the circumstances, it seems like a simple answer to your problem - replacing distributed mail storage and backup with centralized storage and backup.
Don't POP3 email clients have the option keep a copy on the server? Mine certainly does. See second tick box on the pic.
You can then periodically take a back up of all the emails from the server to stop it getting clogged up.

Send emails through VB6 if no email client

I have a VB6 app which is used by a large number of clients.
I need to allow the clients to be able to send emails to me. In the past I have done this using Microsoft MAPI controls. However, not all of them have an email client installed, since they use webmail instead.
Is there any other method anyone can recommend which would allow them to do this?
SMTP
You can use CDO for Windows to do this if we make a few assumptions:
Your users are all on Win2K or later.
The users will never be behind a firewall blocking SMTP or proxying all SMTP port use to a corporate server.
You have an SMTP server that you have an account you can let the user-mails be sent with.
You embed the server's address and account credentials in your program.
Sometimes using an SMTP server listening on an alternate port will address the second issue, but often such an alternate port is even more likely to be blocked.
SMTP is Dying
Abuse over time has made SMTP less and less viable for automated/assisted user contact. There are just too many variables involved in trying to open some sort of "clear channel" for SMTP communication as people work harder to fight spammers and such.
Today I would be much more likely to use either WebDAV or a Web Service for this. Both use HTTP/HTTPS which is more likely to get past firewalls and usually get by most proxy servers as well. WebDAV is often more "slippery" at this than Web Services, which more and more proxies are bocking. You can also use something more RESTful than SOAPy since the traffic "smells more like" user browsing to proxy servers.
WebDAV is a Clean Option
There are even free WebDAV providers offering 2GB of storage with a main and a guest user. The guest account can be given limited rights to various folders so some folders they might post your messages to, other folders they might get data from (read only folders), etc. For a paid account you can get more storage, additional users, etc.
This works well. You can even use the same hosting for program version files, new version code to be downloaded and installed, etc. All you need on your end is an aggregator program that scoops up user posted messages and deletes them using the main user/pw.
You still need to embed user credentials in your program, but it can be a simpler matter to change passwords over time. Just have the program fetch an info file with a new password and an effective date and have the program flip the "new" password to "current" once run on that date or after.
WebDAV support in Windows varies. From WinXP SP3 forward you can simply programmatically map a drive letter to a WebDAV share and then use regular file I/O statements against it, and unmap the letter when done. For more general use across even Win9x you can build a simple WebDAV client on top of XMLHTTPRequest or use a 3rd party library.
Web Services Have Higher Costs
Just to start with you have server-side code to write and maintain, and you have to use a specific kind of hosting. For example if you built it using PHP you need a PHP host, ASP an ASP host, ASP.Net an ASP.Net host, etc.
Web Services can also be more problematic in terms of versioning. If you later update your program to provide different information in these user contact posts you have to make another Web Service as well as changing both the application and the aggregator. Using WebDAV you can just make a "new format" folder on the server and have the new program post the data there in the new format. Your aggregator can simply pull from both folders and do any necessary reformatting into your new local database/message repository format.
This is merely an incremental additional effort though and a Web Service might be the way to go, even if it is just something written like an HTML Form GET/POST acceptor.
Although this question is for VBA you may find it of interest. Sending Emails using VBA without MAPI

How to sync PC desktop mail client to an Exchange Activesync server?

I've got a situation where I want to connect to an email server whose only exposed service for mail/calendar is Activesync (it's an Exchange server). The only web interface exposed is "OWA light" which is horrific.
I'd like to figure out a way to synchronize the mail from this Exchange so that it appears in a desktop mail client (or a webmail client if there any that work this way - gmail doesn't support activesync for subscriptions -- it publishes its mail as activesync which is not what I want).
Basically the ascii art of what I want is:
Exchange => Activesync <=> Client application
There are lots of mobile client applications that do this, but I am looking for a desktop or webmail client that can handle activesync as a subscriber (kind of the way IMAP works).
Thanks for any references or ideas!
Steve
Ok - of course 20 seconds after posting this, I find an answer on superuser. Probably where I should have posted to begin with (I swear I googled before posting but apparently not enough).
SU post: https://superuser.com/questions/43238/activesync-owa-desktop-client
Answer: http://davmail.sourceforge.net/
This appears to be a POP3/IMAP and SMTP bridge to activesync which is exactly what I want. If it works as claimed, I can point any mail client to it and it will sync my mail in two directions so I can send messages that will pass through the system and see all the messages that come in.
Update 2013: I've been using this DavMail OSS software for a few years now and it's really great. For retrieving mail from relatively locked-down Exchange servers, that only permit OWA access, it very easily allows me to "break out" of the box the IT guys want to put me in, and use rational tools and protocols like IMAP, POP, SMTP and Thunderbird to send/retrieve mail from the Exchange server. If I were really motivated, I could get this running on a public server, and serve my mail so that Gmail could poll it, and bridge Exchange and Gmail, but of course I'd have to pay more attention to security.
I haven't had a ton of luck getting the Calendar portions of the system working, primarily because I can't find a caldav client (on Windows) that I like - I think the DavMail part works as well as can be expected.
I tried "TouchDown" just today. I am able to fetch my email and calendar etc.. to my Mac from my Corporate ActiveSync account.
Which operating system are you using? They have support for various OS, including Windows 8.1 and Mac.
Here is the list of all major activeSync clients - http://social.technet.microsoft.com/wiki/contents/articles/1150.exchange-activesync-client-comparison-table.aspx

Method for email testing

I am writing a program that will be emailing reports out many (~100) clients which I want to test before I spam everyone.
I want to do a test run against my production data and actually send the messages to a SMTP server, but I don't want the SMTP server to actually deliver the messages. I want the server to act like a real SMTP server from the perspective of my application, but instead of delivering messages, I just want it to store the messages, and log what happened.
Is there a SMTP server specifically designed for testing purposes?
Does anyone know of a way to configure exim or postfix to behave like I have described above
What do you use to test a mass-email delivery?
In java you can use dumbster
Its easy to use and you can validate every aspect of the email you are intercepting.
It's a Java SMTP server implementation meant for unit testing. (Just make sure you redirect your email to the machine running dumbster...)
I just found another alternative that do almost the same: Greenmail
Greenmail also support POP3, IMAP with SSL so you can test your client against it.
For .NET I set the config file to deliver mail to a folder, then you can have the automated test inspect the directory and files.
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="c:\pickupDirectory"/>
</smtp>
</mailSettings>
</system.net>
While searching for options I found the following that may be useful.
DevNullSmtp
Use a null SMTP server for testing
Fake SMTP Service
twisted examples/emailserver.tac
"The Wiser framework for unit testing mail"
I've heard of a few other developers moving from Dumbster to Wiser and have migrated my testing code as well. One of the Java components that I've worked on sends thousands of emails a day and I've written unit tests for the different email templates and scenarios using Dumbster and Wiser. I prefer Wiser.
Snips from the Wiser website (http://code.google.com/p/subethasmtp/wiki/Wiser):
Wiser is a smart replacement for Dumbster and is built on top of the SubEtha SMTP Java library which allows your Java application to receive SMTP mail with a simple, easy-to-understand API.
A good program for email testing is smtp4dev (Windows only).
It's a dummy SMTP server. Sits in the system tray and does not deliver the received messages. The received messages can be quickly viewed, saved and the source/structure inspected.
http://smtp4dev.codeplex.com/
http://skaraarslan.blogspot.com/2008/02/how-to-check-email-works-without-using.html
(this presumes you are using .net to send emails)
Given that you mention exim and postfix (which I'm taking to be some kind of unix stuff), this answer might not be as useful as it could be, but check out Neptune. It's a fake SMTP server designed for automated testing. If you've got a spare windows box floating around, you could put Neptune on that then configure your app to send "through" the Neptune server.
Exim can be configured to accept incoming mails but not deliver them. Look for the keywords queue_only and queue_only_file in the documentation.
I personally modify the e-mail addresses to test, I send them to a dummy account of mine, that way I can validate not only that they sent, but that they appear in the proper format.
At my office, we have a server that is set up to always send all incoming mail to one address, regardless of who it's actually addressed to. We just point all our testing environments at that server and watch the QA mailbox fill up. I don't know what server it is, but it's probably some open source thing someone found.
Sendmail has a Test Mode.
You just invoke sendmail with the -bt parameter. As an example:
/usr/lib/sendmail -bt -Ciu-testconfiguration.cf
Please be aware that in this method, Sendmail requires an special configuration on rewrite rules. You need to understand how Sendmail rewrites addresses in order to properly create a .cf file for Test Mode.
Edit: See this article: http://ussg.iu.edu/usail/mail/debugging/
After not beeing happy with the solutions I found, I ended up writing developmentSMTP, easy to use, 100% Java --> cross platform.
Supports writing emails to file, forwarding emails or simply printing them on stdout.
Post Hoc is a pure Java application that looks exactly like an SMTP server to the application you are testing, but it simply collects all the email messages and allows you to inspect them using a web interface.
Freely available at: Post Hoc GitHub Site
For more information: PostHoc: Testing Apps that Send Email
If you're looking to manually test that the email sends and that the email template has the right kind of html and css that you're expecting, then I would recommend maildev https://www.npmjs.com/package/maildev. You can install and run it as a node module and also as a docker container! I've found it extremely handy for basic sanity testing of emails.