Связать Интернет-пароль Keychain с учетной записью Mail.app

У меня возникли некоторые проблемы при связывании интернет-пароля брелка с учетной записью электронной почты Mail.app, созданной с помощью Applescript. Я не хочу использовать команду «set password to» Applescript, поскольку хочу, чтобы мое приложение поддерживало доступ к записи цепочки для ключей, которую я создаю.

Так вот, в основном то, что я делаю:

1) Создайте запись цепочки для ключей следующим образом:

SecTrustedApplicationRef objApp[2];
CFArrayRef arrApps;
SecAccessRef objAccess;
SecKeychainItemRef objKeychainItem;
SecProtocolType nProtocolType;

::SecTrustedApplicationCreateFromPath (NULL,&objApp[0]);
::SecTrustedApplicationCreateFromPath ("/Applications/Mail.App",
&objApp[1]);

arrApps = ::CFArrayCreate (kCFAllocatorDefault,(const void **) &objApp,
2,NULL);
::SecAccessCreate (CFSTR ("mail.myserver.com",arrApps,&objAccess);

nPort = 0;
nProtocolType = kSecProtocolTypePOP3;

SecKeychainAttribute objAttrList[] = {
{ kSecLabelItemAttr,    17, (char *) "mail.myserver.com" },
{ kSecAccountItemAttr,  20, (char *) "someone@myserver.com" },
{ kSecServerItemAttr,   17, (char *) "mail.myserver.com" },
{ kSecPortItemAttr,     sizeof (int), &nPort },
{ kSecProtocolItemAttr, sizeof (SecProtocolType), &nProtocolType }
};

SecKeychainAttributeList objAttributes =
{ sizeof (objAttrList) / sizeof (objAttrList[0]),
objAttrList
};

::SecKeychainItemCreateFromContent (kSecInternetPasswordItemClass,
&objAttributes,
12, "somepassword"NULL,
objAccess,&objKeychainItem);

2) Создайте аккаунт с помощью Applescript:

tell application "Mail"set newacct to make new pop account with properties
{ name:"someone@myserver.com",
user name:"someone@myserver.com",
uses ssl:true,
server name:"mail.myserver.com",
authentication: password,
port:995,
full name:"Someone",
email addresses:{"someone@myserver.com"}
}
end tell

Обе части работают по отдельности, но Mail не связывает запись цепочки для ключей с созданной учетной записью. Я, должно быть, пропускаю шаг, но я просто не вижу его, поэтому любая помощь будет принята с благодарностью.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector