I'm currently tasked with importing a huge number of Emails from proprietary mail system into an Outlook.com account (yes, the web service not the desktop app).
Due to the proprietary nature of the source system and the fact that all emails require custom pre-processing prior to importing them into Outlook.com, any commercial service is not an option. Importing the data into a local Outlook database and then export it to Outlook.com is probably not an option either since this is meant to run server side.
What would be my best option to implement the actual import step that preserves the actual email timestamps as they were when the mail was originally received?
This is not for a large number of accounts but this is how you do it for a single account. I would recommend reaching out to Microsoft for support especially if you are a paying customer that needs to import this data.
According to Outlook.com IMAP is not supported yet. Outlook.com does support ActiveSync. I'm not sure which proprietary mail system you are using but it appears that only method would be to setup ActiveSync on the desktop (Outlook) then add a second account (proprietary mail system) via IMAP, then to drag-drop the contents between the two accounts. This is a common method to migrate email data.
Secondly, you can login into your Outlook account and set it to import 3rd party email. Here is an article showing how to do that, Move Your Mail to Outlook article.
Related
I have to create an application that needs to synchronize with Google, outlook or any other popular calendar services. It need to be two way meaning updates and events from google/outlook calendar needs to be visible and editable in my application and vice versa.
I have been searching for a while in hope to find something like Email services that can be synchronized using Imap and Smtp servers.
I found out that .ics file can be used to export and import calendar data. But in my case it need to be real time synchronization from both sides.
Are there any APIs or libraries i can use? Or any other way to do it?
Any suggestion is welcome.
Thank you.
The de facto way to synchronize calendars is a CalDAV server, which reads and writes events to a local database and exposes the event details through the ICS format, wrapped in CalDAV messages.
Various clients have differing levels of support for the protocol and its extensions.
Apple iCalelndar, Mozilla Thunderbird with Lightning and Microsoft Outlook with some proprietary plugin can talk CalDAV, but each have their specific annoyances. iCalendar will refuse to remove conflicts, Lightning will get stuck with authentication issues and stop updating and the Outlook plugins, well ... suck.
One Outlook plugin in particular was designed by a developer (literally 20 tabs in the settings screen), didn't implement base64 properly (we had to pad its messages at the server) and refused to do anything useful when a debugger was active on the machine it ran on.
But that was the state of things like five years ago, and I haven't touched the subject since. I think we settled on using a Google Calendar and provide a one-way sync through ICS files.
I am developing an intranet web application which should provide its users with a weekly medium-size quizzes about the latest training courses that they took in the company.I developed the quiz machine to be similar to this one explained on ASP.NET website.
Now, I need to make the system sending the quizzes at 7 o'clock on every Monday. Since this is my first project in ASP.NET, I need your explanation and some references to help me in implementing this task.
I already implemented a Mail class that uses MailMessage and SMTP Client. I used this class for Contact Us page. But I don't know I will need to use for this case or not.
I googled about this but I could not be able to find any useful resource for this thing except one resource that tells me about designing one empty page and when the user comes to this page, it should send an email. Then, I need to use some called task scheduling to automate the process of sending emails. But how I develop these things?
Any help?
I would not build an ASP.NET site/page that only sends e-mails if you're going to need to do so on a timed schedule.
There are better options:
Write a Windows Service or console application in .NET that knows how to connect to your database, collect information needed to send e-mails, and use the SMTP client within the framework to send e-mails. Then use the Windows task scheduler or some other enterprise scheduling software to run the job on your required schedule.
Create a job within your DBMS that builds and sends the e-mails using a stored procedure or CLR integration (if available).
Depending on the rules created by the e-mail admins, you may need to send e-mails in batches or from a special account so you don't get flagged as a spammer. If the e-mails are external there may be other hoops to jump through (possibly even legal ones via the CAN-SPAM Act).
I have a windows service written in .NET/C# which reads emails from a Domino mailbox. Currently I am using the Lotus Notes .NET Interop to achieve this. However for this the Lotus Notes Client needs to be installed on the server. I am trying to find a way in which I can achieve this without having to install the Lotus Client on the server. From whatever I have read, I did not find anything.
Proposion N2N is an ADO.NET provider for Domino, but even that needs the client to be installed on the server.
Is there a solution available for this?
In a word, no.
You don't need all of the Notes client (or Domino server) install to get to the data, but you do need a significant part of it (and an ID that has access). Even if you take nothing else into account at all, you'd need a "driver" that recognises and can read all of the various ODS (on-disk structure) versions your database might be in, and it has to be able to handle both stored MIME and Notes Rich Text composite data structures with LMBCS (Lotus Multibyte Character Strings). Neither of those tasks is trivial. Then there's the security to get around: most document data are not stored in the clear even if the database is not locally encrypted (which only prevents unauthorized access from within a Notes/Domino environment if the ID for which it has been encrypted has not been compromised) and the storage method is not published.
In other words, you'd need something that is most of Notes in order to read and/or write, and the easiest way to get most of Notes is to install Notes.
Essentially I have a SQL Server (2008) database that contains contact information (among other things), and would like to provide the ability to view these contacts in Outlook. Outlook 2003 must be supported at minimum. The Outlook clients are connected to Exchange, so having the contacts available in Exchange (and then viewable via Outlook) would work as well.
The sync or import would be one-way, from the database to Outlook/Exchange, so the contacts in Outlook/Exchange could be read-only (or changes could be discarded during import).
I think best case would be that Outlook/Exchange reads from the database in real time, so that if changes are made to the database they are immediately visible when they are accessed. However, if this is not possible (I suspect it's not), the user could either click a button, the sync could happen periodically, or it could happen on Outlook start-up.
Not necessarily looking for a complete solution, just thoughts on an approach to take, and any resources with basic code samples.
There are several technologies you can use:
Exchange 2010 Web Services. Use your favourite SOAP/XML toolkit (like WCF) to manipulate exchange objects, including Contacts. See Working with Contacts for code samples.
Exchange 2003/2007 Collaboration Data Objects (COM), see an example on Creating a Contact in the Exchange Store or this for 2007
WebDAV (HTTP requests) for Exchange 2003/2007 see Creating a Contact in the Exchange Store (WebDAV) or this for 2007
In addition there are client technologies around the Office object model and Outlook, but those would add contacts to individual Outlook address books, not to the central exchange store (ie. not available to the entire org).
Try GeniusConnect
You could look into Outlook 2003 VBA to do this. Many years ago I used (misused?) Outlook VBA to read some data from a database. I don't know how far VBA would get you (and each user would have to install the VBA code on their Outlook client), but it's a place to start looking, anyway.
While looking for an answer to a similar issue I found this aswel.
It is a fully written working example in C# with the following features:
Import Contacts to Outlook from Database.
Export Contacts from Outlook to Database.
Synchronizing Contacts between Outlook and Database.
Three more code examples:
Outlook Contacts Sync SQL
Moving Data to Outlook from SQL
Coupling Outlook to SQL Server
And here another website with more general information on how to connect the both of them.
I need to create a very simple c# Windows Service to listen for, and process email wth special subject lines. I already have the code that process these emails working well. For ease of development, I just packaged the code in an "Outlook Addin" on my own machine, running under my own email account. Works great.
Now that it's working, I need to move this to the server. I have a special email account setup on the Exchange Server for this purpose. I really don't want Outlook running on the server. Is there some other way to login to this email account and listen for email from my Windows Service without using the Outlook client?
Thanks!
It sounds like your code is closely tied to Outlook, so you may have to change your approach for the server. I faced exactly the same problem last year and considered the following options :
CDO (not supported by Microsoft with .NET due to some strangeness when running in process)
WebDAV for Exchange 2003
Web Services for Exchange 2007 (great example in the link)
You also need to ask yourself - do you actually need your program to check the mail server? I couldnt use any of the above options so ended up having one of the mail admins set up an exchange rule that dropped the emails/attachments into a special folder on the server. I could then process the files at my leisure. Worked extremely well and much easier to maintain than directly interrogating the mail server through code.
If your exchange admin has enabled it you can use IMAP or POP3 to connect to the server.
You can also use MAPI to connect as well.
You can find a number of libraries (free and otherwise) for doing all three.
I have had good experience with MailBee IMAP but there are definitely free alternatives if you only need to do some simple functionality.