Если он не появляется, то проверка отключена. Вы можете включить его в настройках:
Редактор → Инспекции → Java → JUnit → Тест JUnit 4 может быть JUnit 5
Также убедитесь, что JUnit Jupiter находится на вашем пути к классам.
Можно ли создать объект процесса и иметь ли его вызов "mailto:user@example.com? subject=My+New+Subject". Это заставит систему действовать на mailto со своим обработчиком по умолчанию, однако, в то время как можно установить предметы и такой этот дескриптор привычки, прикрепляющий вложение. Я свободно признаю, что я не совсем уверен, как Вы пошли бы о принуждении вложения, не пишущий некоторый почтовый плагин.
Код процесса:
System.Diagnostics.Process.Start("mailto:user@example.com?subject=My+New+Subject");
Это - вероятно, не самый эффективный или изящный путь, но окружение "mailto": ссылка сделает то, что Вы хотите, я думаю.
Править: Извините, не учтенный очень важное "нет".
Мог это быть, что Вы использовали mailto: протокол?
Почти все из того, что Вы выделяете, может быть сделано, но я совершенно уверен, который Вы наклоняете, делают вложения.
Так как mailto не поддерживает вложения, и так как MAPI не поддерживается в рамках управляемого кода, Ваш лучший выбор состоит в том, чтобы записать (или сделайте, чтобы кто-то записал), маленькая неуправляемая программа для вызывания функций MAPI, которые можно вызвать с параметрами командной строки. Жалость та.NET не имеет более чистой альтернативы.
См. также: MAPI и события управляемого кода?
Запуск процесса с mailto: аргументами является самый простой подход. Все же это не позволяет ничего более или менее сложного.
Немного отличающийся подход включает почтовый шаблон создания и затем питание его к Процессу. Запустите:
var client = new SmtpClient();
var folder = new RandomTempFolder();
client.DeliveryMethod =
SmtpDeliveryMethod.SpecifiedPickupDirectory;
client.PickupDirectoryLocation = folder.FullName;
var message = new MailMessage("to@no.net",
"from@no.net", "Subject","Hi and bye");
// add attachments here, if needed
// need this to open email in Edit mode in OE
message.Headers.Add("X-Unsent", "1");
client.Send(message);
var files = folder.GetFiles();
Process.Start(files[0].FullName);
Сценарии для обработчика электронной почты по умолчанию:
Я также протестировал с Моно, и это работало более или менее.
Дополнительные детали доступны в этом сообщении: информационная интеграция - самый простой подход для шаблонных электронных писем
PS: в конце я пошел для немного более сложного сценария:
Вы делаете предположение, что им установят почтовый клиент, конечно.
Вариант, который я выбрал в прошлом (в корпоративной среде, где у всех есть по крайней мере одна версия установленного Outlook) состоял в том, чтобы использовать Outlook interop - только необходимо сослаться на самую раннюю версию, которую необходимо поддерживать.
Вы могли посмотреть на P/Invoking MAPISendDocuments (которого я буду стараться избегать, лично), или другая опция состояла бы в том, чтобы создать Ваше собственное, "составляют" форму и используют объекты от Системы. Сеть. Почтовое пространство имен.