Your Outlook installation may be defective, or I it may be caused by your display's settings and the fact that Outlook can't handle the scaling setting.
If the app looks normal when opened manually from the exe
file, the problem is probably in the Office.Interop
API itself.
Process.Start
approach
You could create the mail message via command-line parameters and run the process itself:
System.Diagnostics.Process.Start(
"C:\\Program Files (x86)\\Microsoft Office\\Office15\\OUTLOOK.EXE",
"/c ipm.note /m hello@example.com"));
Where Office15
would be the version of your Office installation. Unfortunately this approach doesn't enable you to add the other fields like CC, etc.
mailto:
approach
A great alternative could be to use the mailto:
protocol, because it doesn't require the user to have Outlook installed and will work with any e-mail client and it still covers all your needs. To use it you construct the mailto:
URI like:
var mailtoUri = "mailto:someone@example.com?subject=This%20is%20the%20subject&cc=someone_else@example.com&body=This%20is%20the%20body"
And then you launch that URI to open the user's default assigned mail client:
var startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.FileName = mailtoUri;
Process.Start(startInfo);
More details on the mailto:
protocol are available on MSDN.