Почтовый клиент по умолчанию зависит от пользователя. HKLM
перечисляет все зарегистрированные почтовые клиенты; первый возвращенный может не быть текущим пользователем по умолчанию. Лучше читать HKEY_CURRENT_USER\Software\Clients\Mail
.
Также это только дает вам имя приложения электронной почты. Если вам нужно имя исполняемого файла, вы должны продолжить что-то вроде:
object mailCommand = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\" + mailClient.ToString() + @"\shell\open\command", "", "none");
и затем удалите все лишнее из строки командной строки, которая вам не нужна (кавычки, параметры).