2009-08-04 9 views
7

Używam MFMailComposeViewController w 3.0, aby wysłać wiadomość e-mail z załącznikiem itp. Wewnątrz mojej aplikacji. Chciałbym, aby adres "To:" był domyślnie ustawiony na domyślne konto/adres na urządzeniu. Jak uzyskać dostęp do tego adresu, aby umieścić go w łańcuchu znaków dla setToRecipients?dostęp do domyślnego adresu e-mail

Zasadniczo pozwolę użytkownikowi wysłać wiadomość e-mail do siebie (jako domyślne "Do") z załącznikiem w aplikacji.

Odpowiedz

5

Interfejs API nie ujawnia tych informacji publicznie (prawdopodobnie z dobrych powodów, na przykład uniemożliwiając programistom zbieranie adresów e-mail użytkowników iPhone'a).

Powinieneś prawdopodobnie zapytać o adres e-mail użytkownika, a następnie zapisać go do wykorzystania w przyszłości.

+6

To dziwne, biorąc pod uwagę, że można uzyskać adresy e-mail kontaktów w książce adresowej – Surya

+0

@Neil jest możliwe, aby uzyskać domyślny adres e-mail w systemie iOS? –

5

Wydaje się, że przyjęte rozwiązanie jest złe

Getting user's default email address in Cocoa

Ta odpowiedź pokazuje kod uzyskanie adresu e-mail z książki adresowej (wymienione w punkcie „mnie”)

EDIT: Zanotuj komentarz! OSX tylko nie iOS: |

+4

Aby wyjaśnić, ponieważ to pytanie jest oznaczone dla iPhone'a: ​​ta metoda wydaje się działać tylko w systemie OSX, a nie w systemie iOS. http://stackoverflow.com/questions/3642968/how-do-you-access-the-current-users-record-in-address-book –

2

Możesz użyć ABGetMe dla systemu iOS, aby uzyskać kartę książki adresowej użytkownika. Spójrz na kod źródłowy, zobaczysz, jak odzyskać wszystkie adresy e-mail dla danego ABRecordRef.

+1

"Program ABGetMe nie jest zgodny z prawem App Store, ponieważ korzysta z nieudokumentowanych interfejsów API. jest zabronione przez klauzulę 3.3.1 Umowy licencyjnej na program dla programistów iPhone'a, która jest technicznie zgodna z App Store, ponieważ przejdzie weryfikację App Store, a ponadto nie powinna się zawieszać, nawet jeśli nieudokumentowane interfejsy API zmienią się w przyszłości. " – AmineG

+0

Możesz teraz wyłączyć prywatne interfejsy API w ABGetMe, a zostanie ono zastosowane w nieco mniej skutecznej metodzie, która nie korzysta z żadnego prywatnego interfejsu API. – 0xced