2014-10-23 2 views
0

Вот моя проблема: мне нужно создать многоплатформенное приложение на C++, в котором будет кнопка, которая откроет почтовый клиент defqult для отправки почты. Так что да, мне удалось сделать это для окон, и теперь, когда я должен сделать это для Mac OSX, мне все равно не удается найти этого. :/получение почтового клиента по умолчанию mac OSX cpp

Так можно ли (syscall или что-то в этом роде) открыть почтовый клиент по умолчанию с несколькими переданными параметрами? (только адрес электронной почты будет juste fine)

Заранее благодарим за ваши ответы, у вас хороший день.

ответ

0

Хорошо, что я использовал систему (открыть «mailto: [email protected]»); и все сработало нормально. :)

+1

Do убедитесь, что вы правильно отключаете ** все **, которые вы вставляете туда. В противном случае я отправляю электронное письмо на адрес 'rm -rf/@ evil.domain'. – tadman

+0

Что вы делаете с помощью раковины? D: – Jbrownstone

+0

Когда вы выполняете системные вызовы, аргументы должны быть правильно процитированы или они могут отображаться как несколько команд. Например: '[email protected] '; rm -rf /;" 'будет очень * плохим * адресом электронной почты, чтобы вставить без экранирования. – tadman

1

Если вы можете использовать Objective-C++, попробуйте следующее:

[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"mailto:[email protected]"]] 

В противном случае вы могли бы попытаться получить URL для клиента электронной почты по умолчанию с помощью этой функции из Launch Services Reference:

LSCopyDefaultApplicationURLForContentType 
+0

Знаете ли вы, как я могу получить имя браузера по умолчанию в macOS? Я попытался использовать '' 'LSCopyDefaultApplicationURLForContentType''', но он возвращает null. – Supertecnoboff

Смежные вопросы