如何从设备获取发件人电子邮件?

时间:2012-12-31 04:43:15

标签: iphone xml xcode email

我正从我的应用程序向服务器发送一些数据。我的数据包含不同的字段,如下面的代码所示

-(void)createXML
{
xmlStr = @"<?xml version='1.0'?>\n<jand_req>\n<inquiryList>\n<productArr>\n";
NSString *nameStr=[NSString stringWithFormat:@"<name>%@</name>\n",name.text];
xmlStr=[xmlStr stringByAppendingString:nameStr];
NSString *compNameStr=[NSString stringWithFormat:@"<comp_name>%@</comp_name>\n",compName.text];
xmlStr=[xmlStr stringByAppendingString:compNameStr];
NSString *cityStr=[NSString stringWithFormat:@"<city>%@</city>\n",city.text];
xmlStr=[xmlStr stringByAppendingString:cityStr];
NSString *countryStr=[NSString stringWithFormat:@"<country>%@</country>\n",[nameToCode objectForKey:country.text]];
xmlStr=[xmlStr stringByAppendingString:countryStr];
NSString *commentsStr=[NSString stringWithFormat:@"<comment>%@</comment>\n",commentsBox.text];
xmlStr=[xmlStr stringByAppendingString:commentsStr];
xmlStr=[xmlStr stringByAppendingString:@"</userDetail>\n</inquiryList>\n</jand_req>"];
}

在此之后,我将上述数据发送到服务器,如下面的代码所示

- (void)submitForm
 {
[self createXML];

NSLog(@"myaccesscode%@",[fn getValFromSettings:@"accessCode"]);
   NSString *serviceUrlStr=[NSString stringWithFormat:@"%@/%@/API_sendmail.php?access_code=%@",domainName,apiFolderPath,[fn getValFromSettings:@"accessCode"]];
    NSLog(@"%@",serviceUrlStr);
    NSURL * serviceUrl = [NSURL URLWithString:[serviceUrlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    NSMutableURLRequest * serviceRequest = [NSMutableURLRequest requestWithURL:serviceUrl cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:100];
    [serviceRequest setValue:@"text/xml" forHTTPHeaderField:@"Content-type"];
    [serviceRequest setHTTPMethod:@"POST"];
    [serviceRequest setHTTPBody:[xmlStr dataUsingEncoding:NSUTF8StringEncoding]];
    NSURLConnection *conn=[[[NSURLConnection alloc] initWithRequest:serviceRequest delegate:self startImmediately:YES] autorelease];
}

以上所有代码都适合我,但现在我想在此代码中包含另一个功能,其中包含发件人电子邮件地址,但此发件人电子邮件必须从设备中获取,就像我们在应用程序中使用MFMailComposeViewController一样然后自动从Device获取发件人电子邮件地址。感谢帮助。

1 个答案:

答案 0 :(得分:0)

#import <AddressBook/AddressBook.h>

NSString *emailAddr = @"";
ABPerson *aPerson = [[ABAddressBook sharedAddressBook] me];
ABMultiValue *emails = [aPerson valueForProperty:kABEmailProperty];
if([emails count] > 0)
    emailAddr = [emails valueAtIndex:0];

不要忘记添加AddressBook.framework。

现在,emailAddr包含发件人电子邮件,您可以将其附加到xml字符串或您想要的任何位置!

-(void)createXML
{
    // Your code
    NSString *emailStr=[NSString stringWithFormat:@"<email>%@</email>\n",emailAddr];
    xmlStr=[xmlStr stringByAppendingString:emailStr];
}

快乐的编码!