I am using VS 2010 , Dot Net Framework 2.0 . I have created a project in Extensibility->Shared Add-ins for Outlook.
I want to remove duplicate Mail-item based on Subject ,body , Recipient name,Received Time
I want to know can i use search engine of outlook and remove duplicate or what should i use to remove duplicates.What is the best and efficient way
Please any suggestions
This what I have done to accomplish this task. I don't known this is the efficient way or not?
1) Created a Data-table and Transverse to each mail-item and added the EntryID,Subject etc in the Data-table.
2) Compared each element one by one using Select() on datatable and added this in DataRow [].
3) Then created mail-item using EntryId.
4) and removed or moved this mail-item
For 210 Email this process takes 25 secs.
Please comment and tell me if this can be enchanced.
Related
For maintaining a research project I'm setting up a Google Sheet to create mailing lists using logical operators.
The basic structure is a "contacts" sheet with an ever-growing list of email addresses, names, etc. I then add a new sheet for each new email-campaign (i.e., a mass email to be sent out). There is also an "unsubscribe" list to suppress email address inclusion in any future campaigns.
I struggle to come up with a solution that allows me to identify email addresses that have been e.g.,
(a) never contacted as yet
(b) twice contacted already
(c) not contacted through "campaign1"
AND are not part of "unsubscribe"
My logical approach has been to establish a "history" sheet that lists all email addresses of any campaigns so far. I'm challenged to find a solution that compares "contacts" and "history" and correctly returns the rows that align with my search parameters, yet returns a given email address no more than once (so as to not email people multiple times per campaign).
I've tried to various configurations and nesting of QUERY, FILTER, SORTN including UNIQUE to establish a universal approach that uses "contacts" as a central source from which to logically extract rows as illustrated above.
This sheet reflects the above (no functions) and invites for suggestions: https://docs.google.com/spreadsheets/d/1NRY-udwepbFahVryX7FF6WIQ0vtFJkjuuhRWFJVAWnI
1. never contacted as yet
=FILTER(contacts!A2:D1000, NOT(COUNTIF(contacts!B2:B1000, history!B2:B1000)))
2. twice contacted already
=UNIQUE(FILTER(history!A2:D1000, COUNTIF(history!B2:B1000, history!B2:B1000)>1))
3. not contacted through "campaign1"
=FILTER(campaign2!A2:D1000, NOT(COUNTIF(campaign1!B2:B1000, campaign2!B2:B1000)))
4. are not part of "unsubscribe"
=FILTER(contacts!A2:D1000, NOT(COUNTIF(unsubscribe!A1:A999, contacts!B2:B1000)))
5. twice contacted already AND are not part of "unsubscribe"
=UNIQUE(FILTER(history!A2:D1000, COUNTIF(history!B2:B1000, history!B2:B1000)>1,
NOT(COUNTIF(unsubscribe!A1:A999, history!B2:B1000))))
6. define the formulas using named ranges.
=UNIQUE(FILTER(History, COUNTIF(historyB, historyB)>1,
NOT(COUNTIF(unsubscribe, historyB))))
Alright so I'm needing some help here. I working with Outlook 2007 PIA (Outlook add-in) and using the advanced search. I'm trying to write a DASL filter for the AppointmentItem property GlobalAppointmentID but I cannot seem to find the correct namespace to use in the filter.
I've tried urn:schemas:calendar:uid and I do not get any results when searching on the first appointment in the default calendar list. The MSDN documentation states that this is a mapi property but I am unfamiliar with mapi so at the moment I do not know how to even find it in the msdn that way (I tried and ended up way over my head).
I know there is a work around to go to the default folder and iterate through the collection to find the object that I need but I consider that too inefficient (I'm using it at the moment but want to improve it).
Any help would be appreciated!
OOM will not let you search for GlobalAppointmentId (or any other PT_BINARY property) in Items.Find/FindNext/Restrict. The only workaround is to either loop through all item in the Calendar folder (extremely inefficient) or search using Extended MAPI (C++ or Delphi only) or Redemption (I am its author - any language, its version of RDOFolder.Items.Find allows to search on GlobalAppointmentId or any other binary property)
Not every property can be used in a filter string for Items.Restrict, Table.Restrict or Application.AdvancedSearch methods. For both Jet and DASL queries, you cannot restrict on a binary property such as EntryID or GlobalAppointmentID. Also you cannot restrict or search for computed properties.
Anyway, you may find the Chapter 11: Searching Outlook Data helpful.
I have a recorded Visual Studio Load Test (using Visual Studio 2015).
It seems to have recorded fine, but if I just play it back as it is, I am going to get primary key violations.
I have logic like this in my application:
Ask the web service for an ID.
Take that ID and pass it into a save call.
I know that I can put in the value of a "Context Parameter" using {{ variable }} syntax.
But I have not been able to find a way save a value off at run time into a Context Parameter.
Is there a way to take part of a result and then use it for future calls?
The simple way is to add an extraction rule to the request. There are several types of extraction rule for getting different types of data from the response. They are added via the context (right click) menu of the requests. Select the required extraction rule and set the properties as needed.
More complicated extractions can be done by writing your own extraction rule or by writing a Plugin.
If the text to be extracted can be selected in the "Response" tab of the web test execution results then, sometimes, the context menu of that selected text has a "Add extraction rule" entry (I may have mis-remembered the exact wording). If using this then check the rule that is added. It often creates a rule looking for a very short Starts with string and looking for the Nth occurrence. Eg, in HTML the text Value=" is common and the generated rule might be to find the 17th occurence of alue=. The rule may be a good starting point but works better to select the first (ie index 0) occurrence of a longer string.
(Little or nothing has changed between the 2010 and the 2015 versions of Visual Studio as far as the referenced articles are concerned.)
I have outlook 2011 in my mac. I have more than 30,000 emails in my mail box and would like to search from all the mails based on inputs.
Now using Advanced find I can do that , But for each and every value I have to add a new search criteria
eg . Subject contains xxx
Subject contains yyy
Subject contains zzz
it would be very difficult for me to add the search value manually if I have 1000 values to search for.
Is there any effective way to do this or do we some plugin which would read from input file and populate these vales ?
Any help would be really appreciated
I think, you can get little bit help from this -- http://derflounder.wordpress.com/2011/04/26/finding-the-hidden-search-options-in-outlook-2011/ , also this one too - https://www.gvsu.edu/cms3/assets/428A2C9A-0FB7-5B0C-BBFCF723C12E59E3/outlook_mac_search_email.pdf
In Windows version of Outlook there is a hidden tab that can be enabled by creating a new registry key HKEY_CURRENT_USER\Software \Microsoft\Office\12.0\Outlook\QueryBuilder. See here (sroll to Building DASL Queries).
This adds SQL tab to Filter dialog of Customize Current View. Here you can write a text with DASL query. The query for your example would look like this:
("urn:schemas:httpmail:subject" LIKE '%xxx%' AND
"urn:schemas:httpmail:subject" LIKE '%yyy%' AND
"urn:schemas:httpmail:subject" LIKE '%zzz%')
You can create script that takes all keywords from a text file and formats them like
"urn:schemas:httpmail:subject" LIKE '%MyKeyword%'
and construct the DASL query prorgamatically from a text file. You can store your generated queries as text files and copy them in the SQL tab as necessary.
This solution is surely far from perfect but it is relatively easy to implement. The problem is that I do not know how to enable that tab in Outlook 2011 on Mac nor whether it is possible at all. I do not have a Mac so take this rather as a hint.
Does anyone know how to bulk extract outlook properties from everyone inside a distribution list?
I can expand the distribution list by clicking the small + sign, but that only gives me first and last names, what I want is their aliases (which only available on outlook property)
Thanks in advance
Sorry actually I just found 1 way of doing it:
Backup and remove everyone in your contact list
Open the outlook properties of the distribution list
Add all members of the distribution list into your contact
Export your contact list into excel, and the alias will be in one of the column
Feel free to post additional answer if you have better method. Thanks