How do I set Outlook extended properties on an email in C#? - email

I have currently written code to send an email in C# using the usual SMTPClient and MailMessage objects.
My new requirement is that the email being sent should have "permissions" set as if the user was sending the email via Outloook and using the option from the ribbon toolbar. The permission to be set is the "Do Not Forward" option.
The option I wish to emulate when sending the email is accessed here;
Can anyone please supply some sample .Net code to achieve this or else provide me with a good code reference online?
Thanks in advance,
Brian.

First of all, I am unaware as to how one might be able to set IRM (Information Rights Management) permissions using only a standard SMTP message (MailMessage). IRM permissions, I believe, are completely Outlook/Exchange-centric, and lack any sort of representation in the SMTP standard.
The only way you're going to be able to enable that permission is through the Outlook Object Model via the Outlook Interop assemblies. IamStalker above me recommended Redemption, which, while 99% of the time is the correct answer for everything Outlook-related, is not the way to go for this particular problem. Because IRM (as far as I know) has no representation in MAPI, Redemption wouldn't be much help here; I don't believe I've ever seen an IRM-related property on Redemption's object model.
You'll most likely be interested in the Permission property exposed by the MailItem object type. It appears that in order to programmatically turn on the "Do Not Forward" option, you will want to set the value of that property to OlPermission.olDoNotForward.
There is another IRM-related property (PermissionTemplateGuid), but it appears that you can leave this as an empty string since you are using a built-in "permission".
I would assume then that all other IRM-related settings are provided to Outlook through the user's Outlook profile.
Good luck!

Hello Brian I have only one suggestion "Redemption"!
I have used it and it's awesome it's very easy to implement the owner Dima is very nice person
he helps alot.
PS: It's not free but worth every penny.

Related

How do I export a gSuite user's email when I'm a delegate for their account

I'm trying to find a way to export the emails of a current employee without them knowing. I'm currently a delegate on the account and am using GAM. Any ideas?
If you are superadmin then you should look into either Google Vault which is the immutable record of emails see doc or you should use Got Your Back here written by Jay0lee who wrote GAM. GYB exports to MBOX though so if you want to share the emails with someone who for whatever reason can't read MBOX then you will need an MBOX to PST converter of which there are many online. I have used the one from Systools effectively link. Or you can export by GYB and then import into a different gmail account which is quite useful for some types of investigation.
If you are merely a delegate then there is no easy way.

how to reset password using email in laravel 5

i want to reset password using email which is defalt provided by laravel 5.
i don't have any idea or knowledge how is password reset code sent to email and use that password to do reset in laravel.
I have mail configuration correct now i want to send the user the password from email.
How to send email having password to gmail and how to put password and update password in our laravel project.
For us to really help you, it is much better if you give something a try and if it doesn't work then post the code so that we can help you debug and improve it.
To begin with, I would suggest reading the documentation on how this all works.
Next, this blog post lays the whole process out from start to finish on how to implement password reset functionality using the default files that come with Laravel. There is too much to post the whole process here so I suggest you attempt to follow it then when/if you run in to trouble then you have something that you can actually post for us to help you on.
Finally, this package provides the auth scaffold that was removed in Laravel 5 that you might find useful as it provides all the views etc for registering, logging in and resetting passwords.
Check those out, give it a go and then come back to us with specific issues that you are having and post the code that is causing the issues and we can help you much more from there.
EDIT to clarify on comments
Trait
A Trait is intended to reduce some limitations of single inheritance
by enabling a developer to reuse sets of methods freely in several
independent classes living in different class hierarchies. The
semantics of the combination of Traits and classes is defined in a way
which reduces complexity, and avoids the typical problems associated
with multiple inheritance and Mixins.
A Trait is similar to a class, but only intended to group
functionality in a fine-grained and consistent way. It is not possible
to instantiate a Trait on its own. It is an addition to traditional
inheritance and enables horizontal composition of behavior; that is,
the application of class members without requiring inheritance.
This is from the PHP docs, essentially it groups a whole load of functionality for us to use.
In this case the ResetsPasswords holds all of the actual code that resets the password and is called in to the Controller that handles this using use ResetsPasswords;.

Assign New Leads of Existing Accounts to Account Owner

Salesforce - Apex Trigger for New Leads for Existing Accounts. How?
Hello,
I would like to write an Apex Trigger to check if a new lead's COMPANY or NAME already exists as an ACCOUNT, and therefore assign the new lead to the proper ACCOUNT OWNER.
Is there a formula that anyone can provide me to make this happen?
It would be great if the formula would look for CONTAINS "ACCOUNT NAME" rather than a direct match, for cases where a new lead submits their company name in a format slightly different than our existing ACCOUNT NAME.
Thank you greatly for your help.
I don't think this can be done with just a formula. You will need a trigger, preferably one that calls an apex class to do the work. The class will have to be without sharing if you want to reassign the owner id. You'll have to query account for this.
I don't know if anyone is still following this thread, but a client recently asked me for something similar. The client wanted new Leads to be assigned to the same Owner as an existing Contact with a matching email address. Standard Salesforce Lead Assignment Rules didn't support this, so I implemented it using Process Builder and Visual Workflow. There was no need to write Apex code.
It was straightforward and reasonably quick to do, so I put together a blog post outlining the steps. Hopefully someone will find this useful in future.
https://alearningdiary.com/2017/11/12/assign-a-lead-in-salesforce-based-on-existing-contact-owner/
Brian

Where MAPI fields of mails are stored

I was trying to programatically achieve Communication thread tracking for Outlook. I have found this article on MSDN. And I fiddled with it a bit. It seems that it is possible to do it by tracking PR_CONVERSATION_INDEX by developing Outlook Add In.
However I would like to achieve the similar functionality in Java. Since I am quite new to MAPI development, I was not quite clear about where this PR_CONVERSATION_INDEX is stored in .msg file or somewhere in Exchange server that we access using MAPI.
I want to know if it is possible to intercept any incoming / outgoing message and obtain its PR_CONVERSATION_INDEX using Java. If PR_CONVERSATION_INDEX is stored in .msg file then I must be able to parse such file in Java and obtain the same.
If it is not stored in .msg file then I will like to know where it is stored and how can I access using Java.
I don't think Extended MAPI header files were ever translated to Java.
Use C++ (or Delphi).

Method to allow email recipients to change their account information

I'm using SugarCRM Community Edition. I have a bunch of contact information. There are fields I have empty that would like filled. I want each user to be able to fill out a form and fill in those fields.
I'm not sure how to hook each contact into the database. I imagine creating a generic form that somehow hooks into the database using a key. The form/php is not the issue. What is the 'key' and where is the 'door'? I think the door is the SOAP API but I'm not sure. The key, maybe the tracker id?
The only thing I am familiar with as far as interaction between an email campaign and the contact is the campaign 'Tracker'. I know the tracker url with removeme is used for allowing the user to opt out of emails. Is there a way to use this tracker to allow the person to edit their information? I think the answer to this is easy but I need some guidance.
One way of doing this is using the built-in REST api. There are a couple of helpful tutorials out there, here is a link to the one I used for guidance in a similar situation.
You can have a form post the data to your sugar crm's REST gateway, accessible via the url http://localhost/sugar/v2/rest.php.
Although it is quite straightforward to implement, you may want to look at this wrapper class that can be used to maybe keep things cleaner than the hacked up script churned out on the spur of the moment I used in my project.
Last but not least, be sure to glance over the documentation, in the Web Services section you will find more information.
Good-luck