2011-08-17 11 views
10

मैं अपने ऐप के अंदर से एक ईमेल भेजने की अनुमति देने के लिए एक ढांचे के लिए चारों ओर देख रहा हूं। मैंने मेलकॉर, पैंटोमाइम और एसकेपीएसएमटीपी को बिना किसी किस्मत के सभी की कोशिश की है। मैं उन्हें एक्सकोड में संकलित नहीं कर सकता, इसलिए मुझे लगता है कि वे पुराने थे। क्या कोई और तरीका है इसे करने के लिए? यदि हां, तो कैसे? धन्यवाद।एक्सकोड 4/आईओएस - मेरे ऐप के अंदर से एसएमटीपी का उपयोग करके एक ईमेल भेजें

+0

आपकी सामग्री के साथ अपने ऐप में एक नया ईमेल बॉक्स पॉप अप करने का एक तरीका है, लेकिन उपयोगकर्ता इसे भेजने के लिए नियंत्रित करता है या नहीं। मुझे यकीन नहीं है कि एक ऐप के अंदर अपने स्वयं के एसएमटीपी को लागू करने से एप्पल द्वारा अनुमोदित किया जाएगा। – Dani

+0

शायद नहीं, लेकिन वहां कई ऐप्स हैं जो इसे लागू करते हैं? जिस संदर्भ में यह है, वह होटल के लिए एक बुकिंग फॉर्म है। तो अगर मैं एक भेजें बटन जोड़ता हूं, और सेब देखता हूं कि मैं कुछ भी बुरा नहीं कर रहा हूं, तो मुझे कोई कारण नहीं दिख रहा है कि इसे खारिज कर दिया जाएगा। जब तक मैं दिशानिर्देशों में कुछ याद नहीं करता। हालांकि आपके इनपुट के लिए धन्यवाद। –

+0

मैंने सफलतापूर्वक SKPSMTP कोड संकलित किया है। निर्माण चरणों/संकलन स्रोतों के लिए .m फ़ाइलों को स्पष्ट रूप से जोड़ने का प्रयास करें। – Ellis

उत्तर

18

आप आसानी से अपने आईओएस डिवाइस से ईमेल भेज सकते हैं। एसएमटीपी और सभी को लागू करने की कोई ज़रूरत नहीं है। आईओएस में अंतर्निहित ईमेलिंग सुविधाओं का उपयोग करने के बारे में सबसे अच्छी बात यह है कि यह आपको एड्रेस बुक तक पहुंच प्रदान करता है! इसलिए यह नाम, ईमेल पते स्वतः पूर्ण करता है। Yaaiiii !!

शामिल, AddressBook, AddressBookUI और MessageUI ढांचे और इस तरह कुछ कोड। ध्यान दें कि आप सामग्री को HTML के रूप में भी भेजना चुन सकते हैं! मैं करूंगा

- (void)mailComposeController:(MFMailComposeViewController*)controller 
      didFinishWithResult:(MFMailComposeResult)result 
         error:(NSError*)error 
{ 
    if(error) NSLog(@"ERROR - mailComposeController: %@", [error localizedDescription]); 
    [self dismissModalViewControllerAnimated:YES]; 
    return; 
} 

मुबारक कोडिंग ...

+0

पर संभावित डुप्लिकेट प्रश्न आपके विस्तृत और कुछ हद तक विनोदी प्रतिक्रिया के लिए धन्यवाद! :) क्या यह मेल स्क्रीन को नीचे से लाएगा, या पृष्ठभूमि में चुपचाप भेज देगा? क्योंकि मैं उत्तरार्द्ध के लिए लक्ष्य कर रहा हूँ। –

1

-

#import <MessageUI/MessageUI.h> 
#import <AddressBook/AddressBook.h> 
#import <AddressBookUI/AddressBookUI.h> 

MFMailComposeViewController *mailComposer; 
mailComposer = [[MFMailComposeViewController alloc] init]; 
mailComposer.mailComposeDelegate = self; 
[mailComposer setModalPresentationStyle:UIModalPresentationFormSheet]; 
[mailComposer setSubject:@"your custom subject"]; 
[mailComposer setMessageBody:@"your custom body content" isHTML:NO]; 
[self presentModalViewController:mailComposer animated:YES]; 
[mailComposer release]; 

पूर्णता के लिए के लिए, मैं ईमेल खिड़की खारिज करने के लिए उपयोगकर्ता cancel या send प्रेस यदि इस चयनकर्ता लिखने के लिए है कल्पना करें कि ऐसा करने का ऐप्पल स्वीकृत तरीका HTTP पोस्ट के माध्यम से डेटा को सर्वर पर भेजना होगा, और सर्वर आपके लिए मेल जेनरेट करेगा। मैंने दूसरों को इसी तरह के प्रश्न पूछने के लिए देखा है, और जवाब यह है कि यदि आप इसे डिवाइस से भेजते हैं, तो आपको वास्तव में उपयोगकर्ता को संकेत देने की आवश्यकता है।

मैं आपको यह भी बता सकता हूं कि यह क्यों है: एक ऐसी एप्लिकेशन की कल्पना करें जो आपकी पुष्टि पुस्तिका के बिना आपकी पता पुस्तिका में सभी को भेज सके, उन्हें बताएं कि आपने अभी एप्लिकेशन एक्स इंस्टॉल किया है, और उन्हें भी चाहिए। यहां तक ​​कि अगर अच्छी तरह से इरादा है, तो यह जल्दी से एक विशाल एसएमटीपी तूफान पैदा कर सकता है, और संक्षेप में यह "मैं तुमसे प्यार करता हूँ" वायरस होगा।

कि सार्वजनिक इंटरनेट पर दबाव के लिए पर्याप्त था, लेकिन वायरलेस कैरियरों पर, जल्दी से सेल सेवा ब्लॉक करने के लिए पर्याप्त अधिभार के कारण हो सकता है।

निष्कर्ष: या तो ComposeViewController का उपयोग के रूप में @Srikar पता चलता है, वरना अपने सर्वर पर डेटा पोस्ट, और वहाँ से भेज सकते हैं।

+0

मैं समझता हूं कि, लेकिन अगर मैं ढांचे में बने सेब का उपयोग नहीं करना चाहता था, तो मुझे एड्रेस बुक तक पहुंच की आवश्यकता नहीं होगी। ईमेल से सिर्फ एक, और एक ईमेल करने के लिए। लेकिन यदि यह संभव नहीं है, तो मुझे बस फॉर्म भरने के लिए उपयोगकर्ता को प्राप्त करना होगा, और ईमेल भेजने के लिए केवल उनके लिए जेनरेट किया जाएगा। –

4

SKPSMTPMessage यूआई की आवश्यकता के बिना ईमेल भेजने के लिए अभी भी ठीक काम करता है।

सुनिश्चित करें कि आप अपनी परियोजना में CFNetwork.framework का संदर्भ जोड़ें। अन्यथा आपको बिल्ड त्रुटियां मिलेंगी।

+3

मैंने इस 'SKPSMTPMessage' का उपयोग किया। लेकिन इसे उपयोगकर्ता नाम और पासवर्ड को हार्डकोड करने की आवश्यकता है। लेकिन मैं आईफोन में पहले ही हस्ताक्षरित ईमेल खाते का उपयोग कर ईमेल भेजना चाहता हूं। मैं उसे कैसे कर सकता हूँ – iDia

6

ऐसा लगता है MFMailComposeViewController एक विधि canSendMail कहा जाता है। यदि आप उस डिवाइस पर MFMailComposeViewController प्रस्तुत करने से पहले यह जांच नहीं करते हैं जिसमें ईमेल खाता नहीं है, तो आपको एक SIGABRT मिलेगा।

यह इस याद आती है जब डिवाइस या सिम्युलेटर पर परीक्षण के बाद से आप शायद अपने मैक और अपने iPad पर एक ईमेल खाते होगा आसान है।

संबंधित मुद्दे