Process mailbody with SSIS - ssis

I'm working on a SSIS project that mainly fetches data from an oracle DB and puts it in excel sheets, with some logging and email-sending etc.
Situation now: comments are emailed daily and manually copy pasted from outlook into the excel files (oldskool)
Now, we'd like to fetch the (whole) <'body'> of the emails and insert that in excel via SSIS.
2 questions arise:
-- How to fetch the mail itself (fetch it from the exchange? create a process that saves the mail as a html/text file after receiving)
-- How to 'read' the body of the email (I already found some info on this, less of a problem, via a C# script task read the body tag)
Thanks in advance for any input!

You have to use 3rd party components to read messages from Exchange.
It's better to try Script Task to access Exchange (take a look at this question). This way You can access exchange mailbox and put subject, from, to, cc, bcc and body in separate columns in pipeline. Don't forget that connecting to Exchange requires windows account and that way your package must be run by user who owns mailbox. Or You can impersonate him in Script Task.
Since this is quite a task, U guess it would be better to create simple application that will read mails and store them in database so You can retrieve them easily with SSIS.

Related

Working on incoming emails with SSIS

We are quite successful in using SSIS for sending out email notifications. On the other hand, we are missing an Email Source Adapter.
Assume the following situation: we receive mail with standardized Attachments. (e.g. Excel) We would like to have SSIS run over the (POP or IMAP) mailbox and analyze emails and attachments.
Has anybody seen such an adaptor? No matter if commercial or open source.

Create Lotus Notes entry from Access Event

Is it possible to create an entry in a Lotus Notes Calendar, specifically a "reminder" using an Access VBA script when a new entry is made in the Access database table? I have had a search on google but the only thing I can find so far is send an email to Lotus Notes. The email option but work if I can create it as a Lotus Notes invitation. Is that a possible alternative?
If you found examples for sending an email, then you found examples on how to open the users mailfile (called dbMail in the following examples) using OpenMail method of NotesDatabase- class.
Now you just need to create a document using Set doc = dbMail.CreateDocument in that database, tell it to be an Appointment by applying the form- item Call doc.ReplaceItemValue( "Form", "Appointment" ) and then set all the required items. The needed items can be found in the calendaring and scheduling schema at IBM.
Sorry for not posting specific code, but did not want to put more effort in my answer then you did in your question...
The description of all classes (for LotusScript, but they are mainly the same in VB / VBA) can be found in the Domino Designer- Help you find at various places in the web.
If person A can create an appointment for person B, and that appointment is to be created immediately in B's calendar, A would need write-access to B's calendar. If it should work like that for any A and B in the organisation, you'll have a serious problem. That's why Notes works using invitations.
Please define first which of the two applications is leading in your organisation, Notes or the Access Calendar? If it is Notes, you should indeed send invitations, and your application should be inquiring Notes/Domino regularly about the status of the appointments. If it is your Access application, you can indeed put the appointment document directly in the user's database, but that would require write access to all user mail/calendar databases.
We solved a similar problem by creating an intermediary database (application) on the Domino server that is the interface between the (Access) application and the Notes environment. The Notes application runs as a special user, with write-access to all user databases. The Access application can communicate with that database in any way you seem fit: mail, web-services, COM-interface.
Better refrain from writing user mail databases directly. Either send invitations, or create a Notes-based "replicator" application.

PDF to MS Access

I am attempting to implement the following for my school's website:
School registration is currently a hard-copy form.
They'd like applicants to fill out a PDF form online.
They then print, sign and mail it to the school.
The school want to be able to store the data entered by the applicant in the PDF so that when the signed application arrives, they can simply approve the registration for that student without reentering all the students info.
The school system is run on MS Access (if it matters which version I can find this out).
Any ideas how I can implement an import from their form to MS Access?
Thanks.
I've used a website called www.doculicious.com that does pretty much this exact thing. You can upload a PDF and have it converted into a web form. Whoever fills in the web form can download the completed PDF and print it out for signing. All the data is stored in the system and you can get it out as XML or CSV for importing into another database manually, or use the API to do that part automatically.
It depends on how automatically you want it to be. A fully automated case would be
Scan in the printed form using TWAIN
Use a Form Recognition library to align the form back to the original and find the zones with the information you want
Use OCR to get the information out of the form (probably ICR, if handwritten)
Find the original record in Access
Update the record with the new data
This isn't simple -- there are products out there that could help, but they are not cheap, and ICR is not very accurate.
I would suggest that you just do #4 and #5 in Access and give them a screen where they process an incoming form -- someone keys in the new data. That form
Lets you specify the record you want to update (like with a name or ssn)
Shows you the record with edit boxes for you to fill in with the form data
Saves it back when you are done.
This is straight-forward in Access.
The school can use a regular HTML form on their website and ask parents to submit details online. Your server-side can save the submitted details to your database and generate a unique submission token/key/code back to the parent on the web page. When the parents come to the school and mention the key, print their details on paper and ask them to sign it. You file the paper and the data is already in your database.
If the intent is to import from an electronically submitted form, I have used Adobe LifeCycle Designer to accomplish this very thing. Basically you can create an XML output of the PDF form data using an email client of the end users choice and have the data from the XML file read from the inbox into the fields of your MS Access database. Of course this solution has some serious constraints on what applications are to be used, as well as what use cases are handled, for example this solution is in a controlled environment in which all users are required to email there requests, where possibly your requirements may need to handle mailed correspondence as well.
I would add to VSU's answer by suggesting the use of Google Forms for data entry.
You just need a free account, then use Docs to create a new Form.
It's extremely easy to setup, and the submitted results en-up in a Google spreadsheet that you can download as an regular Excel file (that makes it very easy to import into Access).
You have a few ways to share the form:
Email a link to the form
Embed the form into an email
Embed the form in your web site, which is probably the best solution for you.
Once the data is in your database, you can easily create a report and a simple lookup form to find the name of the applicant and print the form.
It shouldn't take more than one hour to get start and have something functional.
You can always improve later once you've experimented with this.
The advantage of using Google forms is that it's free, it works well, and you are fairly secure since you're not linking your database directly to the Internet (and don't risk SQL injection).

Using email to update SQL database

Is it possible to use email to update mysql table?
for example I have someone send email which have today article with the image as an attachment and it have to send to particular email address (eg: abc#something.org) to be able to process data to sql table, other address will not work for updating.
Once it receive, it automatically proceed and update sql from the article it receive.
How is it work?
is there any open source that may help this process
Not by sql, you have to involve some sort of programming language which have a subset of methods to communicate with the database and that can receive and send email.
Take a look at Sendgrid (at http://sendgrid.com): they have a parse API (see http://wiki.sendgrid.com/doku.php?id=parse_api for details) that basically lets you convert an email into an HTTP POST. So if you already have a web page that can update the MySQL database you can just modify it to comply with their spec, set up a sub domain that forwards to Sendgrid and then setup a Sendgrid endpoint that takes any email to that sub domain and posts it to your web page.
It depends on your application. If you're using a framework like Wordpress, there are plenty of plugins available to integrate (e.g. Postie). If you have your own custom application, you may find an open source script to download the new messages, but you'll have to implement your own code to update your database.

send database info to email

I was wondering if sanyone could help me with the following:
I have some info inserted into mysql database on a couple of pages. After this is done I retrieve these info (in a new page) from the database and want to send them via email to various emails including one from the info from database.
I have built the email() function and "SELECT" all the info from the database (have them into some HIDDEN fields).
I am not sure how to go about getting these info sent via email.
I have tried, but all I get is an empty email with no info from database.
Hope I explained my problem and someone can give me clue about this.
Many thanks
Francesco
MySQL does not include a feature for sending email. So you'll need to write additional software to handle the job for you.
One issue to decide, how will the email be requested? -- How will the process be initiated?
You could have your web page (written in PHP or any other language), which shows the information on the screen also send the email. See sending email from php.
A better performing idea is to first queue up your requests for sending emails. That way you won't slow down your web server. Then have a background job process each of the requests, reading the database and sending off the emails. Google for "php background processing" for help or ask more questions on StackOverflow.
Also, remember to check that your email is not being treated as spam.
Re: using the data from the database for sending the email--that's easy, just read the database, then use the information for creating the email's to, cc, subject and other fields.