我正在iphone中開發一個應用程序,可以通過電子郵件發送報告。 使用MFMailComposeViewController框架實現了它。有沒有方法來檢查電子郵件是否有效。我只想將repors發送到一個有效的郵件地址。而且我想檢查郵件的狀態是否成功發送?檢查電子郵件是否有效
回答
MFMailComposerViewController沒有任何條款從它獲取電子郵件地址。您可以通過setToRecipients:方法進行設置。但是你無法訪問用戶在地址欄中實際鍵入的內容。
而且,該消息將在郵件應用程序的發件箱被實際上排隊。該文件明確指出,它不能提供任何方式讓您知道郵件是否實際發送。另一件事是,如果你允許用戶郵寄某些郵件地址,那麼他的責任是輸入一個正確的郵件地址。否則,他不會收到郵件。它取決於他。爲什麼你甚至在意?
一個非正式的方式:看來this post顯示一個未公開的方式通過郵件作曲家的子視圖遞歸循環以訪問電子郵件文本字段。此方法可能會導致您的應用程序被Apple拒絕,或者如果Apple更改了MFMailComposeViewController的實現,可能會在將來停止工作。
感謝您的信息。有沒有其他框架可以用來克服它?它會被蘋果接受嗎? – Tinku
是的。似乎有一種無證的方式。看到我更新的答案。請注意風險;-) – EmptyStack
我只是用這個代碼:
-(BOOL) validEmail:(NSString *)email {
//Based on the string below
//NSString *[email protected]」\\b([a-zA-Z0-9%_.+\\-]+)@([a-zA-Z0-9.\\-]+?\\.[a-zA-Z]{2,6})\\b」;
//Quick return if @ Or . not in the string
if([email rangeOfString:@"@"].location==NSNotFound || [email rangeOfString:@"."].location==NSNotFound)
return NO;
//Break email address into its components
NSString *accountName=[email substringToIndex: [email rangeOfString:@"@"].location];
email=[email substringFromIndex:[email rangeOfString:@"@"].location+1];
//’.’ not present in substring
if([email rangeOfString:@"."].location==NSNotFound)
return NO;
NSString *domainName=[email substringToIndex:[email rangeOfString:@"."].location];
NSString *subDomain=[email substringFromIndex:[email rangeOfString:@"."].location+1];
//username, domainname and subdomain name should not contain the following charters below
//filter for user name
NSString *unWantedInUName = @" [email protected]#$^&*()={}[]|;’:\"<>,?/`";
//filter for domain
NSString *unWantedInDomain = @" [email protected]#$%^&*()={}[]|;’:\"<>,+?/`";
//filter for subdomain
NSString *unWantedInSub = @" `[email protected]#$%^&*()={}[]:\";’<>,?/1234567890";
//subdomain should not be less that 2 and not greater 6
if(!(subDomain.length>=2 && subDomain.length<=6)) return NO;
if([accountName isEqualToString:@""] || [accountName rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:unWantedInUName]].location!=NSNotFound || [domainName isEqualToString:@""] || [domainName rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:unWantedInDomain]].location!=NSNotFound || [subDomain isEqualToString:@""] || [subDomain rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:unWantedInSub]].location!=NSNotFound)
return NO;
return YES;
}
請注意,當ICANN允許[新的頂級域名](http://www.icann.org/en/topics/new-gtld-program)時,此功能不會受到未來的限制熱媒)。 – darvids0n
使用此方法來檢查電子郵件文本的有效性......
- (BOOL)validateEmail:(NSString *)emailStr {
NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:emailStr]; }
- 1. 檢查輸入電子郵件是否是有效的公司電子郵件
- 2. 檢查電子郵件是否有效? (如果有@和)
- 3. 如何檢查電子郵件地址是否有效?
- 4. Android檢查電子郵件地址是否有效?
- 5. 我們如何檢查電子郵件地址是否有效?
- 6. 檢查電子郵件是否有效並存在
- 7. 使用Pregmatch錯誤檢查電子郵件是否有效?
- 8. Angular 2檢查電子郵件是否有效
- 9. 如何檢查電子郵件帳戶是否有效?
- 10. 如何檢查電子郵件是否爲有效格式?
- 11. 檢查電子郵件是否有效並存在
- 12. 如何檢查電子郵件是否有效?
- 13. Cakephp檢查smtp電子郵件是否有效
- 14. 檢查電子郵件在Google Apps腳本中是否有效
- 15. jQuery的有效電子郵件檢查
- 16. 檢查表單是否有檢查和有效的電子郵件不工作
- 17. 檢查電子郵件是否存在
- 18. 檢查電子郵件是否啓用?
- 19. 檢查新收到的電子郵件是否有附件
- 20. php imap檢查電子郵件是否有附件
- 21. 檢查電子郵件地址是有效的System.Net.Mail.MailAddress
- 22. CakePHP電子郵件組件檢查是否發送電子郵件
- 23. 查看電子郵件DNS是否有效
- 24. 如何查看電子郵件地址是否有效?
- 25. 電子郵件郵件是否鏈接有效的URL?
- 26. 如何檢查輸入的電子郵件是否爲電子郵件格式
- 27. 檢查電子郵件是否有效或Symfony 3.2中已經存在
- 28. 如何檢查電子郵件地址是否有效Lync用戶?
- 29. 錯誤檢查電子郵件ID是否有效使用Mail :: CheckUser
- 30. 檢查一個電子郵件地址是否作爲Google帳戶有效
請參閱這篇文章。 http://stackoverflow.com/questions/800123/best-practices-for-validating-email-address-in-objective-c-on-ios-2-0 – 2011-07-17 06:22:53