2009-08-04 5 views
7

J'utilise MFMailComposeViewController dans la version 3.0 pour envoyer un e-mail avec pièce jointe, etc. dans mon application. Je voudrais que l'adresse "À:" soit définie par défaut sur le compte/l'adresse par défaut sur l'appareil. Comment puis-je accéder à cette adresse pour la placer dans une chaîne pour setToRecipients? Essentiellement, je vais laisser l'utilisateur lui-même envoyer un courriel (par défaut "À") avec une pièce jointe dans l'application.Adresse e-mail par défaut

Répondre

5

L'API n'expose pas ces informations publiquement (probablement pour de bonnes raisons, par exemple empêcher les développeurs de récupérer les adresses e-mail des utilisateurs de l'iPhone).

Vous devriez probablement demander l'adresse e-mail de l'utilisateur, puis l'enregistrer pour une utilisation ultérieure.

+6

Est-ce bizarre de savoir que vous pouvez obtenir des adresses e-mail de contacts dans le carnet d'adresses – Surya

+0

@Neil est-il possible d'obtenir l'adresse e-mail par défaut dans iOS? –

5

Il semble que la réponse acceptée est erronée

Getting user's default email address in Cocoa

Cette réponse montre le code pour obtenir l'adresse e-mail du carnet d'adresses (figurant sous 'moi')

EDIT: Notez le commentaire! OSX seulement pas iOS: |

+4

Juste pour clarifier puisque cette question est marquée pour l'iPhone: cette méthode semble fonctionner seulement pour OSX, pas iOS. http://stackoverflow.com/questions/3642968/how-do-you-access-the-current-users-record-in-address-book –

2

Vous pouvez utiliser ABGetMe pour iOS pour obtenir la carte de carnet d'adresses de l'utilisateur. Jetez un oeil sur le code source, vous verrez comment récupérer toutes les adresses e-mail pour un ABRecordRef donné.

+1

"ABGetMe n'est pas conforme à la loi App Store car il utilise des API non documentées qui est proscrit par la clause 3.3.1 de l'accord de licence du programme développeur iPhone, mais il est techniquement compatible avec App Store car il passera la validation de l'App Store et ne devrait pas planter même si les API non documentées changent à l'avenir. – AmineG

+0

Vous pouvez maintenant désactiver les API privées dans ABGetMe et il utilisera une méthode moins efficace qui n'utilise aucune API privée. – 0xced