나는 내 응용 프로그램에서 전자 메일을 보내고 있지만 보내는 전자 메일 위에 전자 메일에 사진을 넣을 수있는 방법이 있습니다. 내 로고를 표시하는 헤더와 같은 종류.iPhone에서 응용 프로그램의 전자 메일
답변
MFMailComposeViewController를 사용하여 이미지를 첨부 할 때 메시지 아래쪽 (텍스트 아래 있지만 서명 위)에 항상이 표시되며 현재 버전의 프레임 워크에서는 변경할 수 없습니다.
그러나 이미지 데이터를 base64로 인코딩하고이를 앱의 HTML 본문에 직접 배치 할 수는 있습니다. 여기에 코드를 포함하지 않을 것입니다 (쉽게 Google로 변환 할 수 있습니다). 왜냐하면 모든 독자가 이것을 올바르게 해석하지는 않으므로 까다롭고 문제가 많기 때문입니다.
모든 이메일에 대해 동일한 헤더 이미지가 있으면 서버에 저장할 수 있으며이 파일을 참조하는 HTML 이메일 본문에 <img>
태그를 포함 할 수 있습니다.
동적 이미지 인 경우 앱에서 여러 이미지 호스팅 사이트 중 하나로 이미지를 업로드하고 URL을 검색 한 다음 다시 <img>
태그의 src
으로 HTML 이메일 본문에 포함시킬 수 있습니다.
// Action for submenu Email Button
- (IBAction)emailButtonPressed {
[delegate playSound:@"Click_16"];
if (connectionStatus == YES)
{
if (maxCounter)
{
NSString *filename = (NSString *)[self currentImageObject:kSerialKey AtIndex:imageCounter];
NSString* documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
// set up image data for email
NSString *imageFile = [documentsDirectory stringByAppendingPathComponent:filename];
NSData *imageData = [NSData dataWithContentsOfFile:imageFile];
// set up mail view controller for message
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
if (controller != nil)
{
controller.mailComposeDelegate = self;
[controller setSubject:@"Email Subject"];
[controller setMessageBody:@"Check out this picture" isHTML:NO];
[controller addAttachmentData:imageData mimeType:@"image/png" fileName:filename];
[self presentModalViewController:controller animated:YES];
}
[controller release];
}
else
[self genericAlert:@"There are no pictures to email."];
}
else
[self genericAlert:@"You are not connected to the internet. Please connect and try again."];
}
// email delegate method to dismiss window
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
[self becomeFirstResponder];
[self dismissModalViewControllerAnimated:YES];
}
코드의 documentsDirectory는 무엇입니까? – Vikings
죄송합니다. 코드를 업데이트했습니다. documentsDirectory 변수는 응용 프로그램의 문서 디렉토리입니다.'[NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex : 0]; ' – FreeAsInBeer
이 코드는 여전히 메시지 아래의 이미지와 서명 위에 이미지를 배치합니다. – theChrisKent
당신은 MFMailComposeViewController 클래스에서 - (void)addAttachmentData:(NSData*)attachment mimeType:(NSString*)mimeType fileName:(NSString*)filename
방법을 사용해야합니다.
카메라에서 이미지를 가져온 후 이메일 메시지를 보내는 모습을 보여주는 great example of this입니다.
첨부 파일로 보내지 않고 일부 텍스트 위에 표시하고 싶습니다. – Vikings
이미지의 하단과 사용자의 서명 위에 이미지가 표시됩니다. 이 프레임 워크를 사용하여 이것을 사용자 정의 할 수 없습니다. –
고마워, 그게 내가 한거야. – Vikings