मैं किसी भी ईमेल क्लाइंट का उपयोग किये बिना कोको ऐप से एक ईमेल कैसे भेज सकता हूं? मेरे पास NSURL है लेकिन यह एक ईमेल क्लाइंट खोलता है। मैं इस घटना के बिना ईमेल भेजना चाहता हूं।कोको से ईमेल भेजें
उत्तर
अद्यतन: जैसा कि दूसरों 10.9 से, सुझाव दिया तुम भी संलग्नक का समर्थन करता है कि NSSharingService उपयोग कर सकते हैं!
स्विफ्ट उदाहरण:
let emailImage = NSImage.init(named: "ImageToShare")!
let emailBody = "Email Body"
let emailService = NSSharingService.init(named: NSSharingServiceNameComposeEmail)!
emailService.recipients = ["[email protected]"]
emailService.subject = "App Support"
if emailService.canPerform(withItems: [emailBody,emailImage]) {
// email can be sent
emailService.perform(withItems: [emailBody,emailImage])
} else {
// email cannot be sent, perhaps no email client is set up
// Show alert with email address and instructions
}
पुराने अद्यतन:। मेरा पुराना जवाब ठीक काम किया जब तक मैं App स्टोर के लिए मेरी क्षुधा सैंडबॉक्स में था ~~ तो एकमात्र समाधान मैंने पाया के बाद से उपयोग कर रहा था बस एक mailto: लिंक।
- (void)sendEmailWithMail:(NSString *) senderAddress Address:(NSString *) toAddress Subject:(NSString *) subject Body:(NSString *) bodyText {
NSString *mailtoAddress = [[NSString stringWithFormat:@"mailto:%@?Subject=%@&body=%@",toAddress,subject,bodyText] stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:mailtoAddress]];
NSLog(@"Mailto:%@",mailtoAddress);
}
नुकसान: कोई अनुलग्नक नहीं! यदि आप जानते हैं कि इसे मैक पर कैसे काम करना है, तो मुझे बताएं!
पुराने उत्तर: आप एप्पल स्क्रिप्ट, एप्पल के पटकथा पुल फ्रेमवर्क (समाधान 2) या Python स्क्रिप्ट (समाधान 3)
समाधान 1 (एप्पल लिपि) कर सकते हैं:
संलग्नक एक सरणी है फ़ाइल पथ युक्त डंक की
- (void)sendEmailWithMail:(NSString *) toAddress withSubject:(NSString *) subject Attachments:(NSArray *) attachments {
NSString *bodyText = @"Your body text \n\r";
NSString *emailString = [NSString stringWithFormat:@"\
tell application \"Mail\"\n\
set newMessage to make new outgoing message with properties {subject:\"%@\", content:\"%@\" & return} \n\
tell newMessage\n\
set visible to false\n\
set sender to \"%@\"\n\
make new to recipient at end of to recipients with properties {name:\"%@\", address:\"%@\"}\n\
tell content\n\
",subject, bodyText, @"McAlarm alert", @"McAlarm User", toAddress ];
//add attachments to script
for (NSString *alarmPhoto in attachments) {
emailString = [emailString stringByAppendingFormat:@"make new attachment with properties {file name:\"%@\"} at after the last paragraph\n\
",alarmPhoto];
}
//finish script
emailString = [emailString stringByAppendingFormat:@"\
end tell\n\
send\n\
end tell\n\
end tell"];
//NSLog(@"%@",emailString);
NSAppleScript *emailScript = [[NSAppleScript alloc] initWithSource:emailString];
[emailScript executeAndReturnError:nil];
[emailScript release];
/* send the message */
NSLog(@"Message passed to Mail");
}
Solu टयन 2 (ऐप्पल स्क्रिप्टिंगब्रिज फ्रेमवर्क): आप अपना संदेश भेजने के लिए मेल का उपयोग करने के लिए ऐप्पल के स्क्रिप्टिंगब्रिज फ्रेमवर्क का उपयोग कर सकते हैं
Apple's exmaple link यह बहुत सरल है, आपको केवल अपनी परियोजना में नियम और Mail.app जोड़ने के साथ परेशानी की आवश्यकता है। Readme.txt ध्यान से पढ़ें।
"ईमेल मैसेज। विज़िबल = हाँ;" बदलें "emailMessage.visible = नहीं;" तो यह पृष्ठभूमि में भेजता है।
नुकसान: उपयोगकर्ताओं को मेल के तहत वैध खाते होने की आवश्यकता है।
समाधान 3 (पायथन स्क्रिप्ट (कोई उपयोगकर्ता खाता नहीं): आप संदेश भेजने के लिए एक पायथन स्क्रिप्ट का भी उपयोग कर सकते हैं। नुकसान: उपयोगकर्ताओं को एसएमटीपी विवरण दर्ज करना होगा जब तक कि आप उन्हें मेल से नहीं ले जाते (लेकिन फिर आप सीधे ऊपर समाधान 1 का उपयोग कर सकते हैं), या आपके पास अपने ऐप में एक विश्वसनीय एसएमटीपी रिले हार्डकोड होना चाहिए (आप एक जीमेल खाता और उपयोग कर सकते हैं
import sys
import smtplib
import os
import optparse
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
username = sys.argv[1]
hostname = sys.argv[2]
port = sys.argv[3]
from_addr = sys.argv[4]
to_addr = sys.argv[5]
subject = sys.argv[6]
text = sys.argv[7]
password = getpass.getpass() if sys.stdin.isatty() else sys.stdin.readline().rstrip('\n')
message = MIMEMultipart()
message['From'] = from_addr
message['To'] = to_addr
message['Date'] = formatdate(localtime=True)
message['Subject'] = subject
#message['Cc'] = COMMASPACE.join(cc)
message.attach(MIMEText(text))
i = 0
for file in sys.argv:
if i > 7:
part = MIMEBase('application', 'octet-stream')
part.set_payload(open(file, 'rb').read())
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
message.attach(part)
i = i + 1
smtp = smtplib.SMTP(hostname,port)
smtp.starttls()
smtp.login(username, password)
del password
smtp.sendmail(from_addr, to_addr, message.as_string())
smtp.close()
और मैं इसे कहते इस पद्धति के रूप में एक का उपयोग कर एक ईमेल भेजने के: यह उस उद्देश्य के लिए, लेकिन यदि आपकी ऐप्लिकेशन भी कई ईमेल भेजने गूगल आपके अकाउंट (स्पैम))
मैं इस अजगर स्क्रिप्ट का उपयोग हटा सकते हैं जीमेल खाता
- (bool) sendEmail:(NSTask *) task toAddress:(NSString *) toAddress withSubject:(NSString *) subject Attachments:(NSArray *) attachments {
NSLog(@"Trying to send email message");
//set arguments including attachments
NSString *username = @"[email protected]";
NSString *hostname = @"smtp.gmail.com";
NSString *port = @"587";
NSString *fromAddress = @"[email protected]";
NSString *bodyText = @"Body text \n\r";
NSMutableArray *arguments = [NSMutableArray arrayWithObjects:
programPath,
username,
hostname,
port,
fromAddress,
toAddress,
subject,
bodyText,
nil];
for (int i = 0; i < [attachments count]; i++) {
[arguments addObject:[attachments objectAtIndex:i]];
}
NSData *passwordData = [@"myGmailPassword" dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *environment = [NSDictionary dictionaryWithObjectsAndKeys:
@"", @"PYTHONPATH",
@"/bin:/usr/bin:/usr/local/bin", @"PATH",
nil];
[task setEnvironment:environment];
[task setLaunchPath:@"/usr/bin/python"];
[task setArguments:arguments];
NSPipe *stdinPipe = [NSPipe pipe];
[task setStandardInput:stdinPipe];
[task launch];
[[stdinPipe fileHandleForReading] closeFile];
NSFileHandle *stdinFH = [stdinPipe fileHandleForWriting];
[stdinFH writeData:passwordData];
[stdinFH writeData:[@"\n" dataUsingEncoding:NSUTF8StringEncoding]];
[stdinFH writeData:[@"Description" dataUsingEncoding:NSUTF8StringEncoding]];
[stdinFH closeFile];
[task waitUntilExit];
if ([task terminationStatus] == 0) {
NSLog(@"Message successfully sent");
return YES;
} else {
NSLog(@"Message not sent");
return NO;
}
}
मुझे आशा है कि यह
में मदद करेगा
स्क्रिप्टिंग ब्रिज ... अगर मैं थंडरबर्ड का उपयोग करता हूं तो क्या होगा? या आउटलुक? या कुछ और? –
फिर आप पर्ल स्क्रिप्ट का उपयोग कर सकते हैं। मेल सबसे लोकप्रिय ईमेल क्लाइंट है, यदि यह मौजूद नहीं है तो आप उपयोगकर्ता से अपने एसएमटीपी विवरण दर्ज करने के लिए कह सकते हैं या आप अपना हार्डकोड कर सकते हैं। – Tibidabo
आपकी ** पर्ल ** स्क्रिप्ट की पहली पंक्ति #!/Usr/bin/env python ??? :-P –
यह post सहायता चाहिए - यह example code भी उद्धृत करता है।
तुम भी पृष्ठभूमि में संदेश भेजने के लिए Controller.m में लाइन 114 को बदलने की जरूरत:
emailMessage.visible = NO;
मैंने पहले उस पोस्ट पर एक नज़र डाली है, लेकिन जब आप ईमेल को समाप्त करते हैं तो यह मेल एप्लिकेशन खोलता है, जिसे मैं वास्तव में नहीं चाहता हूं, बस ईमेल भेजना चाहता हूं, मूल रूप से मैं अपना खुद का मेल एप्लीकेशन बनाना चाहता हूं :), लेकिन उत्तर के लिए धन्यवाद: डी –
आप Simple Mail Transfer Protocol (SMTP) का उपयोग करने की आवश्यकता होगी। यह लिंक आपको यह बताता है कि यह कैसे काम करता है: Understanding the SMTP Protocol।
उन प्रतिक्रिया पुराना मैक ओएस एक्स 10.8 कर रहे हैं और अधिक आप NSSharingService
[मूकाभिनय कीNSArray *[email protected][body,imageA,imageB];
NSSharingService *service = [NSSharingService sharingServiceNamed:NSSharingServiceNameComposeEmail];
service.delegate = self;
[email protected][@"[email protected]"];
service.subject= [ NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"SLYRunner console",nil),currentDate];
[service performWithItems:shareItems];
यह स्वीकार्य उत्तर होना चाहिए। ध्यान रखें कि यदि उपयोगकर्ता Outlook का उपयोग कर रहा है, तो अनुलग्नक संलग्न नहीं होंगे। – fzwo
NSSharingService के साथ एक और समस्या यह है कि आप संगीतकार के ईमेल बॉडी को पहले से सेट नहीं कर सकते हैं (यदि ऐसा कुछ है जो आपको करने की ज़रूरत है)। –
@ZS यह सही नहीं है। प्रदर्शन देखें Iithems: संदेश निकाय सेट करने के लिए। – insys
- 1. एल्मा से ईमेल भेजें?
- 2. टर्मिनल से ईमेल कैसे भेजें?
- 3. रेल कंसोल से ईमेल भेजें
- 4. सुरक्षित तरीके से ईमेल भेजें
- 5. vb.net ईमेल भेजें
- 6. ईमेल भेजें asp.net C#
- 7. सी # थोक ईमेल भेजें
- 8. आईफोन ऐप ईमेल भेजें
- 9. एक एक्शन कोको भेजें - IBAction
- 10. जिरा उपयोगकर्ता पते से ईमेल भेजें
- 11. Asp.net एमवीसी -3 से ईमेल कैसे भेजें?
- 12. पायथन के माध्यम से आउटलुक ईमेल भेजें?
- 13. जावा से हस्ताक्षरित ईमेल कैसे भेजें?
- 14. ssh प्रवेश पर ईमेल भेजें
- 15. ईमेल में एक तालिका भेजें
- 16. यूटीएफ -8 ईमेल कैसे भेजें?
- 17. एचटीएमएल प्रारूपित ईमेल कैसे भेजें?
- 18. उपयोगकर्ता को सक्रियण ईमेल भेजें
- 19. Node.js - पंजीकरण पर ईमेल भेजें
- 20. ईमेल समस्या (ईमेल बॉडी में हाइपरलिंक भेजें) एंड्रॉइड
- 21. ईमेल बॉट के लिए फोटो भेजें, वेबसाइट
- 22. आईफोन एसडीके में ईमेल कैसे भेजें?
- 23. Log4Net + पूरा होने पर ईमेल भेजें?
- 24. ईमेल में पार्सड कंसोल आउटपुट भेजें
- 25. एक सत्र में एकाधिक ईमेल कैसे भेजें?
- 26. विंडोज सेवा के माध्यम से स्वचालित ईमेल भेजें जिसमें सी #
- 27. आईआईएस 7 के माध्यम से ईमेल कैसे भेजें?
- 28. रेल: उत्पादन में जीमेल के माध्यम से ईमेल भेजें
- 29. PHP के माध्यम से ईमेल में एचटीएमएल भेजें?
- 30. ऑटो लॉग-इन और ईमेल फिर से भेजें
संभव डुप्लिकेट = पुराना उपयोग करना चाहिए। मेल ढांचे को भेजना और प्राप्त करना] (http://stackoverflow.com/questions/3567251/pantomime-outdated-sending-and-receiving-mail-framework) –
[ईमेल भेजें - कोको] के संभावित डुप्लिकेट (http: // stackoverflow। कॉम/प्रश्न/139622 9/सेंड-ईमेल-कोको) –