отправить электронное письмо без отображения MFMailcomposeviewcontroller

Я работаю с приложением. В котором пользовательское требование состоит в том, чтобы отправить форму пациента по электронной почте на конкретную учетную запись электронной почты. Проблема в том, что электронное письмо будет отправлено без отображения контроллера mfmailcomposeview. Это означает, что пользователь нажмет одну кнопку отправки, а затем электронное письмо будет отправлено на учетную запись пользователя без mfmailcomposeviewcontroller с устройства iPhone. Является ли это возможным? Может кто-нибудь помочь мне ? Пожалуйста, пришлите мне любой пример этой работы. Я много искал по этому поводу, к сожалению, я не нашел никакого результата.


person Bilal hussain    schedule 21.11.2013    source источник
comment
Попробуйте сначала поискать в сети. Вы получите ответ ...   -  person Maulik    schedule 21.11.2013
comment
Похоже, вам нужно будет составить письмо самостоятельно и отправить его через SMTP.   -  person trojanfoe    schedule 21.11.2013
comment
Вы хотите отправлять электронную почту в фоновом режиме, вы не можете отправлять почту и получать сообщения в фоновом режиме .. Только в целях безопасности   -  person Parvendra Singh    schedule 21.11.2013
comment
Подсказка: вы можете использовать веб-службу для отправки почты со своего сервера.   -  person Maulik    schedule 21.11.2013


Ответы (3)


Apple не предоставляет почтовые платформы для отправки электронной почты без отображения MFMailcomposeviewcontroller.

Программная отправка сообщений электронной почты without user intrection из приложения iphone не может быть реализована с использованием каких-либо структур Apple.

Это может быть possible in a jailbroken phone, но тогда он никогда не увидит inside of App Store.

Для исходного ответа:

Если вы хотите контролировать отправку электронной почты, лучше всего настроить web service (at your server end), в который вы можете отправлять сообщения с помощью HTTP-запроса. Если вы отправляете сообщение только на один адрес, это может сработать очень хорошо, хотя вы можете попросить пользователя ввести свой обратный адрес электронной почты.

person Dhaval Bhadania    schedule 21.11.2013

Это не поддерживается iPhone SDK, вероятно, потому, что Apple не хочет, чтобы вы это делали.

Почему нет? Мое предположение: потому что этим легко злоупотребить. Если бы мы знали адрес электронной почты пользователя, мы могли бы спамить им, мы могли бы подделать электронные письма от них и т. Д. Представьте, что приложение для iPhone отправляет электронное письмо, когда вы без вашего ведома - это не круто, даже если у приложения были добрые намерения.

Итак, все, что вы сделаете, чтобы обойти это, скорее всего, приведет к отказу в магазине приложений.

Сказав все это, вы могли бы написать свой собственный код взаимодействия smtp для чата с сервером исходящей почты пользователя. Например, если у пользователя есть учетная запись Gmail, вы можете запросить у них адрес электронной почты и пароль, вам нужно будет знать, как разговаривать с серверами Gmail и отправлять через них электронную почту.

Переход по этому маршруту означает запрос у пользователя его имени пользователя и пароля, а также запрос или выяснение информации об их почтовом сервере. Другой вариант - отправить прямо с телефона (ваш собственный smpt-сервер, а не только клиент), что требует немного большего количества кода. И если вы напишете свой собственный сервер, отправляемая вами почта с большей вероятностью будет заблокирована, поскольку ваш исходный IP-адрес может не совпадать с доменом в электронной почте отправителя.

Также существуют библиотеки, которые могут помочь

Открытая библиотека Cocoa / Cocoa-Touch POP3 / SMTP?

person Jogendra.Com    schedule 21.11.2013

Билал, я думаю, ты не используешь это

     if ([MFMailComposeViewController canSendMail] )
       {
         MFMailComposeViewController *mailController = [[MFMailComposeViewController 
                                                                        alloc] init];
         [mailController setMailComposeDelegate:self];
         [mailController setSubject:@"Patient Form"];
         [mailController setMessageBody:increments isHTML:YES ];
         [mailController setToRecipients:[NSArray arrayWithObject:@"email id"]];
         [self presentViewController:mailController animated:NO completion:nil];

       }

используйте его, нажав кнопку отправки, я надеюсь, что это поможет вам

person Parvendra Singh    schedule 21.11.2013
comment
спасибо .. уважаемый хочу без представления матод. - person Bilal hussain; 21.11.2013
comment
но это невозможно, мой дорогой друг ..... Но вы можете использовать SMTP для этого ,,,,, Но это не гарантия, что яблоко примет это или нет - person Parvendra Singh; 21.11.2013