Как программно отправить смс на айфон?

Кто - нибудь знает , если это возможно, и как программно отправить SMS из iPhone, с официальным SDK / Cocoa Touch?

14.08.2008 09:51:06
в Ios 4 Вы можете отправить смс с кодом, но проблема в том, что ваше приложение будет закрыто
Pankaj Kainthla 2.02.2011 08:00:03
Если использование официального SDK не является обязательным требованием для других, я написал этот пост, чтобы показать, как это сделать с помощью Twilio: twilio.com/blog/2016/11/…
Megan Speir 9.02.2017 21:57:07
Вы можете создать электронную таблицу Google на основе своей почты Gmail, указать нужные поля, а затем выполнить tools->script editorзапрос POST и использовать MailApp.sendEmailAPI для отправки электронной почты на номер телефона. att's - YOURNUMBER@mms.att.net, tmobile - YOURNUMBER@tmomail.net Я думаю (ВСЕ БЕСПЛАТНО)
Coty Embry 20.05.2017 17:23:16
18 ОТВЕТОВ

Вы можете использовать sms:[target phone number]URL, чтобы открыть приложение SMS, но нет никаких указаний о том, как предварительно заполнить текст SMS текстом.

50
7.06.2019 06:09:04
response-native-communications использует параметр & body = для предварительного заполнения текста при открытии смс: targetphonenumber & body = textyouwanttoprefillwith для iOS
Doug Voss 21.12.2017 20:01:43
Я только что попробовал это на своем iphone 8, и он работал отлично ... спасибо!
Brad Parks 22.01.2019 16:15:00
Мне нужно отправить смс на конкретный номер, но с предопределенным (предварительно заполнить) основной текст. Основной текст должен быть выбран вручную из 4 возможных вариантов. Например, приложение открывается и всплывающие окна "выберите причину". Тогда доступны 4 варианта. Затем пользователь выбирает один из этих 4 вариантов, а затем отправляется автоматическое SMS-сообщение, в качестве основного текста которого выбирается пользователь. любой совет?
seralouk 28.03.2020 18:08:44

ограничения

Если бы вы могли отправить SMS в рамках программы на iPhone, вы сможете писать игры, которые спамят людей в фоновом режиме. Я уверен, что вы действительно хотите получать спам от своих друзей: «Попробуйте эту новую игру! Она взломает мои боксеры, и ваши тоже будут! Roxxersboxxers.com !!!! Если вы зарегистрируетесь сейчас, вы получите 3200 РБ» точки!!"

У Apple есть ограничения для автоматизированных (или даже частично автоматизированных) операций SMS и набора номера. (Представьте, что игра набрала 911 в определенное время суток)

Лучше всего настроить промежуточный сервер в Интернете, который использует онлайн-службу отправки SMS-сообщений, и отправлять SMS-сообщения по этому маршруту, если вам нужна полная автоматизация. (т.е. ваша программа на iPhone отправляет UDP-пакет на ваш сервер, который отправляет реальное SMS)

Обновление iOS 4

iOS 4, однако, теперь предоставляет viewControllerвозможность импорта в ваше приложение. Вы предварительно заполняете поля SMS, после чего пользователь может инициировать отправку SMS в контроллере. В отличие от использования «SMS: ...» формат URL - адрес, это позволяет приложению оставаться открытым, и позволяет заполнять как до и тела поля. Вы даже можете указать несколько получателей.

Это предотвращает автоматическую отправку SMS-сообщений приложениями без уведомления пользователя об этом. Вы все еще не можете отправить полностью автоматизированное SMS с самого iPhone, это требует некоторого взаимодействия с пользователем. Но это по крайней мере позволяет вам заполнить все и избежать закрытия приложения.

Класс MFMessageComposeViewController хорошо документирован, а учебные пособия показывают, насколько это легко реализовать.

Обновление iOS 5

iOS 5 включает в себя обмен сообщениями для устройств iPod touch и iPad, поэтому, хотя я сам еще не проверял это, возможно, все устройства iOS смогут отправлять SMS через MFMessageComposeViewController. Если это так, то Apple использует SMS-сервер, который отправляет сообщения от имени устройств, не имеющих сотового модема.

Обновление iOS 6

Нет изменений в этом классе.

Обновление iOS 7

Теперь вы можете проверить, будет ли используемый вами носитель сообщений принимать тему или вложения, а также какие вложения. Вы можете редактировать тему и добавлять вложения в сообщение, где это позволяет носитель.

Обновление iOS 8

Нет изменений в этом классе.

Обновление iOS 9

Нет изменений в этом классе.

Обновление iOS 10

Нет изменений в этом классе.

Обновление iOS 11

Нет значительных изменений в этом классе

Ограничения для этого класса

Имейте в виду, что это не будет работать на телефонах без iOS 4, и не будет работать на iPod touch или iPad, за исключением, возможно, под iOS 5. Вы должны либо определить ограничения устройства и iOS перед использованием этого контроллер, или рискуете ограничить ваше приложение недавно обновленными 3G, 3GS и 4 iPhone.

Тем не менее, промежуточный сервер, который отправляет SMS, позволит всем этим устройствам iOS отправлять SMS, если у них есть доступ к Интернету, поэтому это может быть лучшим решением для многих приложений. В качестве альтернативы, используйте оба и обращайтесь к онлайн-сервису SMS, только если устройство не поддерживает его.

404
29.12.2019 11:26:47
И если вы купите этот домен, я никогда не смогу смотреть на вас так же.
Adam Davis 12.09.2008 15:03:43
Я думаю, что это иронично, что кто-то пометил этот пост как спам. Читайте между строк, народы!
Randolpho 18.09.2009 14:49:48
-1 потому что это читается как спекуляция. Также см. Ответы Джуса 'Wondrin' и rydgaze о том, как отправлять SMS-сообщения в приложении.
Frank Shearar 27.09.2010 07:55:14
@Frank - обновил мою рецензию, чтобы отразить новые функции iOS 4. Удалена неопрятная формулировка.
Adam Davis 9.10.2010 16:00:28
Я действительно ценю, что вы обновляете этот пост для новых версий iOS. :)
Ciryon 14.03.2016 08:18:08

Если вы хотите, вы можете использовать частный фреймворк, CoreTelephonyкоторый называется CTMessageCenterкласс. Есть несколько способов отправить смс.

2
1.05.2013 09:22:16
Он специально спросил, возможно ли это с помощью официального SDK.
Quentamia 26.07.2011 18:44:16
Можете ли вы предоставить больше информации о частном API? У меня нет проблем с использованием приватного фреймворка, потому что мне не нужно публиковать его в App Store.
Bagusflyer 3.10.2014 02:56:21

Вот учебник , который делает именно то , что вы ищете: MFMessageComposeViewController.

http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/

По существу:

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
if([MFMessageComposeViewController canSendText])
{
    controller.body = @"SMS message here";
    controller.recipients = [NSArray arrayWithObjects:@"1(234)567-8910", nil];
    controller.messageComposeDelegate = self;
    [self presentModalViewController:controller animated:YES];
}

И ссылка на документы.

https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller

143
28.06.2017 14:47:07
Тем не менее, форма SMS должна появиться. Любой способ отправить в фоновом режиме?
Raptor 2.08.2012 11:02:24
Конечно, вы можете отправлять SMS в фоновом режиме, используя такую ​​услугу, как Twilio, но если вы хотите отправить его с номера телефона пользователя, они должны одобрить сообщение с помощью вышеуказанного метода.
Daniel Amitay 2.08.2012 13:13:10
любой, кто использует приведенный выше код, может захотеть поместить MFMessageComposeViewController *controller = ...внутрь блока if. (метод класса не должен иметь экземпляр для выполнения теста)
unsynchronized 13.12.2013 04:12:02
Ссылка http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/говорит "502 Bad Gateway" на моем ноутбуке. Может быть, ссылка не работает.
Nikita Vlasenko 27.11.2015 21:41:40

В iOS 4 есть класс, который поддерживает отправку сообщений с телом и получателями из вашего приложения. Это работает так же, как отправка почты. Вы можете найти документацию здесь: текст ссылки

3
28.10.2011 20:11:02
  1. Вы должны добавить MessageUI.framework в ваш проект Xcode
  2. Включить #import <MessageUI/MessageUI.h>в свой заголовочный файл
  3. Добавьте этих делегатов в ваш заголовочный файл MFMessageComposeViewControllerDelegate иUINavigationControllerDelegate
  4. В вашем IBActionметоде объявите экземпляр MFMessageComposeViewControllerскажемmessageInstance
  5. Чтобы проверить, может ли ваше устройство отправлять текстовое использование [MFMessageComposeViewController canSendText]в условии if, оно вернет Да / Нет
  6. В ifсостоянии сделать это:

    1. Сначала установите тело для вас messageInstanceкак:

      messageInstance.body = @"Hello from Shah";
    2. Затем определите получателей сообщения как:

      messageInstance.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321",         nil];
    3. Установите делегата для вашего messageInstance как:

      messageInstance.messageComposeDelegate = self;
    4. В последней строке сделайте это:

      [self presentModalViewController:messageInstance animated:YES];
99
17.07.2015 14:28:18
Примечание к версии: presentModalViewController:animated:устарело; используйте presentViewController:animated:completion:вместо этого. Кроме того, не забудьте определить метод делегата, - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)resultесли вы хотите знать результаты.
Raptor 30.10.2015 03:41:29
Пожалуйста, поставьте код для теста. @Najeebullah Шах здесь или в Github.
user285594 9.02.2017 07:23:42

Использовать это:

- (void)showSMSPicker
{
    Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));

    if (messageClass != nil) {          
        // Check whether the current device is configured for sending SMS messages
        if ([messageClass canSendText]) {
           [self displaySMSComposerSheet];
        }   
    }
}

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{       
    //feedbackMsg.hidden = NO;
    // Notifies users about errors associated with the interface
    switch (result)
    {
        case MessageComposeResultCancelled:
        {   
            UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS sending canceled!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
            [alert1 show];
            [alert1 release];
        }   

        // feedbackMsg.text = @"Result: SMS sending canceled";
        break;

        case MessageComposeResultSent:
        {
            UIAlertView *alert2 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS sent!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
            [alert2 show];
            [alert2 release];
        }   

        // feedbackMsg.text = @"Result: SMS sent";
        break;

        case MessageComposeResultFailed:
        {   
            UIAlertView *alert3 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS sending failed!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
            [alert3 show];
            [alert3 release];
        }   

        // feedbackMsg.text = @"Result: SMS sending failed";
        break;

        default:
        {   
            UIAlertView *alert4 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS not sent!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
            [alert4 show];
            [alert4 release];
        }   

        // feedbackMsg.text = @"Result: SMS not sent";
        break;
    }

    [self dismissModalViewControllerAnimated: YES];
}
1
28.05.2012 15:04:42
//Add the Framework in .h file

#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>

//Set the delegate methods

UIViewController<UINavigationControllerDelegate,MFMessageComposeViewControllerDelegate>

//add the below code in .m file


- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];

    MFMessageComposeViewController *controller = 
    [[[MFMessageComposeViewController alloc] init] autorelease];

    if([MFMessageComposeViewController canSendText])
    { 
        NSString *str= @"Hello";
        controller.body = str;
        controller.recipients = [NSArray arrayWithObjects:
                                 @"", nil];
        controller.delegate = self;
        [self presentModalViewController:controller animated:YES];  
    }


}

- (void)messageComposeViewController:
(MFMessageComposeViewController *)controller
                 didFinishWithResult:(MessageComposeResult)result 
{
    switch (result)
    {
        case MessageComposeResultCancelled:  
            NSLog(@"Cancelled");    
            break; 
        case MessageComposeResultFailed:
            NSLog(@"Failed");
            break;   
        case MessageComposeResultSent:      
            break; 
        default:  
            break;  
    }  
    [self dismissModalViewControllerAnimated:YES]; 
}
12
27.08.2012 12:33:43
Вы должны увидеть эту ссылку: blog.mugunthkumar.com/coding/… Это поможет вам
Banker Mittal 4.10.2012 13:03:24

Одной из систем межпроцессного взаимодействия в MacOS является XPC. Этот системный уровень был разработан для межпроцессного взаимодействия на основе передачи структур plist с использованием libSystem и launchd. Фактически это интерфейс, который позволяет управлять процессами посредством обмена такими структурами, как словари. Благодаря наследственности, iOS 5 также обладает этим механизмом.

Возможно, вы уже поняли, что я имею в виду под этим введением. Да, в iOS есть системные сервисы, которые включают инструменты для связи XPC. И я хочу привести в пример работу с демоном для отправки смс. Однако следует отметить, что эта возможность исправлена ​​в iOS 6, но актуальна для iOS 5.0—5.1.1. Джейлбрейк, Private Framework и другие нелегальные инструменты не требуются для его эксплуатации. Необходим только набор заголовочных файлов из каталога / usr / include / xpc / *.

Одним из элементов отправки SMS в iOS является системный сервис com.apple.chatkit, в задачи которого входит генерация, управление и отправка коротких текстовых сообщений. Для удобства управления он имеет общедоступный порт связи com.apple.chatkit.clientcomposeserver.xpc. Используя подсистему XPC, вы можете создавать и отправлять сообщения без согласия пользователя. 

Что ж, давайте попробуем создать соединение.

xpc_connection_t myConnection;

dispatch_queue_t queue = dispatch_queue_create("com.apple.chatkit.clientcomposeserver.xpc", DISPATCH_QUEUE_CONCURRENT);

myConnection = xpc_connection_create_mach_service("com.apple.chatkit.clientcomposeserver.xpc", queue, XPC_CONNECTION_MACH_SERVICE_PRIVILEGED);

Теперь у нас в XPC-соединении myConnection установлена ​​услуга отправки SMS. Однако конфигурация XPC предусматривает создание приостановленных соединений - нам нужно сделать еще один шаг для активации.

xpc_connection_set_event_handler(myConnection, ^(xpc_object_t event){
xpc_type_t xtype = xpc_get_type(event);
if(XPC_TYPE_ERROR == xtype)
{
NSLog(@"XPC sandbox connection error: %s\n", xpc_dictionary_get_string(event, XPC_ERROR_KEY_DESCRIPTION));
}
// Always set an event handler. More on this later.

NSLog(@"Received a message event!");

});

xpc_connection_resume(myConnection);

Соединение активировано. В этот момент iOS 6 отобразит в телефонном журнале сообщение о том, что этот тип связи запрещен. Теперь нам нужно создать словарь, аналогичный xpc_dictionary, с данными, необходимыми для отправки сообщения.

NSArray *recipient = [NSArray arrayWithObjects:@"+7 (90*) 000-00-00", nil];

NSData *ser_rec = [NSPropertyListSerialization dataWithPropertyList:recipient format:200 options:0 error:NULL];

xpc_object_t mydict = xpc_dictionary_create(0, 0, 0);
xpc_dictionary_set_int64(mydict, "message-type", 0);
xpc_dictionary_set_data(mydict, "recipients", [ser_rec bytes], [ser_rec length]);
xpc_dictionary_set_string(mydict, "text", "hello from your application!");

Осталось немного: отправьте сообщение на порт XPC и убедитесь, что оно доставлено.

xpc_connection_send_message(myConnection, mydict);
xpc_connection_send_barrier(myConnection, ^{
NSLog(@"The message has been successfully delivered");
});

Это все. СМС отправлено.

25
17.07.2015 14:28:21
Вы не должны использовать XPC для отправки SMS. Созданное приложение не будет одобрено Apple. Вместо этого используйте MessageUI Framework
Raptor 30.10.2015 03:33:45
Если вы используете этот метод для приложения, которое вы используете для своей организации, и приложение не проходит через магазин приложений, у вас нет проблем.
Martin Berger 10.06.2019 10:48:00
Это работает на iOS версии 10+?
Martin Berger 10.07.2019 11:34:23
Получение «Ошибка подключения к изолированной программной среде XPC: Соединение недействительно» на iOS 12
Martin Berger 10.07.2019 12:02:49

Добавьте MessageUI.Framework и используйте следующий код

#import <MessageUI/MessageUI.h> 

А потом:

if ([MFMessageComposeViewController canSendText]) {
  MFMessageComposeViewController *messageComposer =
  [[MFMessageComposeViewController alloc] init];
  NSString *message = @"Your Message here";
  [messageComposer setBody:message];
  messageComposer.messageComposeDelegate = self;
  [self presentViewController:messageComposer animated:YES completion:nil];
}

и метод делегата -

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
             didFinishWithResult:(MessageComposeResult)result {
      [self dismissViewControllerAnimated:YES completion:nil];
 }
23
17.07.2015 14:14:48
эй, это здорово, но мы можем сделать эту функциональность из фона?
Raj 5.04.2014 07:17:52
Apple не разрешит вам отправлять сообщения без одобрения пользователей. Он должен отправить сообщение / почту, нажав кнопку вручную. Кроме того, вы можете использовать пользовательский сервис, отправив электронные письма / номера на ваш бэкэнд, а затем отправив. Хотя вы не можете сделать это непосредственно на iPhone
Bharat Gulati 20.05.2014 21:19:39
- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients
{
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    UIImage *ui =resultimg.image;
    pasteboard.image = ui;
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]];
}
3
9.09.2013 11:17:09
насколько полезны ваши параметры?
martinsurleweb 5.03.2015 21:50:10
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: @ "sms:"]];
Amr Angry 16.07.2017 13:23:32

Вы можете использовать этот подход:

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms:MobileNumber"]]


iOS автоматически перейдет от вашего приложения к странице создания сообщений приложения сообщений. Поскольку схема URL начинается с sms:, это определяется как тип, который распознается приложением сообщений и запускает его.

21
20.07.2015 19:43:56

Следуйте этой процедуре

1 .Добавить MessageUI.Frameworkв проектвведите описание изображения здесь

2 Импорт #import <MessageUI/MessageUI.h>в .h файл.

3 Скопируйте этот код для отправки сообщения

 if ([MFMessageComposeViewController canSendText]) {
    MFMessageComposeViewController *messageComposer =
    [[MFMessageComposeViewController alloc] init];
    NSString *message = @"Message!!!";
    [messageComposer setBody:message];
    messageComposer.messageComposeDelegate = self;
    [self presentViewController:messageComposer animated:YES completion:nil];
}

4 Реализуйте delegateметод, если хотите.

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{


   ///your stuff here 

    [self dismissViewControllerAnimated:YES completion:nil];
}

Беги И ИДТИ!

12
17.11.2014 08:21:56
Стоит отметить , что вы , вероятно , хотите запустить [self dismissViewControllerAnimated:YES completion:nil];внутри messageComposeViewController: didFinishWithResult:метода обратного вызова. Иначе оно просто будет висеть там.
SaltyNuts 16.11.2014 19:35:52
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms:number"]] 

Это был бы лучший и короткий способ сделать это.

1
4.08.2014 12:38:14

// вызов метода с именем и номером.

-(void)openMessageViewWithName:(NSString*)contactName withPhone:(NSString *)phone{

CTTelephonyNetworkInfo *networkInfo=[[CTTelephonyNetworkInfo alloc]init];

CTCarrier *carrier=networkInfo.subscriberCellularProvider;

NSString *Countrycode = carrier.isoCountryCode;

if ([Countrycode length]>0)     //Check If Sim Inserted
{

    [self sendSMS:msg recipientList:[NSMutableArray arrayWithObject:phone]];
}
else
{

    [AlertHelper showAlert:@"Message" withMessage:@"No sim card inserted"];
}

}

// Метод отправки сообщения

- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSMutableArray *)recipients{  
 MFMessageComposeViewController *controller1 = [[MFMessageComposeViewController alloc] init] ;
 controller1 = [[MFMessageComposeViewController alloc] init] ;
 if([MFMessageComposeViewController canSendText])
{
    controller1.body = bodyOfMessage;
    controller1.recipients = recipients;
    controller1.messageComposeDelegate = self;
    [self presentViewController:controller1 animated:YES completion:Nil];
 }
}
3
11.03.2015 05:21:41

Вам нужно использовать MFMessageComposeViewController, если вы хотите показать создание и отправку сообщения в вашем собственном приложении.

В противном случае вы можете использовать метод sharedApplication .

0
17.07.2015 14:28:09

Вот Swift-версия кода для отправки SMS в iOS. Обратите внимание, что это работает только в реальных устройствах. Код протестирован в iOS 7+. Вы можете прочитать больше здесь .

1) Создайте новый класс, который наследует MFMessageComposeViewControllerDelegate и NSObject:

import Foundation
import MessageUI

class MessageComposer: NSObject, MFMessageComposeViewControllerDelegate {
    // A wrapper function to indicate whether or not a text message can be sent from the user's device
    func canSendText() -> Bool {
        return MFMessageComposeViewController.canSendText()
    }

    // Configures and returns a MFMessageComposeViewController instance
    func configuredMessageComposeViewController(textMessageRecipients:[String] ,textBody body:String) -> MFMessageComposeViewController {
        let messageComposeVC = MFMessageComposeViewController()
        messageComposeVC.messageComposeDelegate = self  //  Make sure to set this property to self, so that the controller can be dismissed!
        messageComposeVC.recipients = textMessageRecipients
        messageComposeVC.body = body
        return messageComposeVC
    }

    // MFMessageComposeViewControllerDelegate callback - dismisses the view controller when the user is finished with it
    func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) {
        controller.dismissViewControllerAnimated(true, completion: nil)
        }
}

2) Как использовать этот класс:

func openMessageComposerHelper(sender:AnyObject ,withIndexPath indexPath: NSIndexPath) {
    var recipients = [String]()

    //modify your recipients here

    if (messageComposer.canSendText()) {
        println("can send text")
        // Obtain a configured MFMessageComposeViewController
        let body = Utility.createInvitationMessageText()

        let messageComposeVC = messageComposer.configuredMessageComposeViewController(recipients, textBody: body)

        // Present the configured MFMessageComposeViewController instance
        // Note that the dismissal of the VC will be handled by the messageComposer instance,
        // since it implements the appropriate delegate call-back
        presentViewController(messageComposeVC, animated: true, completion: nil)
    } else {
        // Let the user know if his/her device isn't able to send text messages
        self.displayAlerViewWithTitle("Cannot Send Text Message", andMessage: "Your device is not able to send text messages.")
    }
}
5
23.05.2015 07:40:59

Вы можете представить MFMessageComposeViewController, который может отправлять SMS, но с приглашением пользователя (он нажимает кнопку отправки). Нет способа сделать это без разрешения пользователя. На iOS 11 вы можете сделать расширение, которое может быть как фильтр для входящих сообщений, сообщая iOS либо о спаме, либо нет. С SMS ничего больше не поделаешь

1
26.11.2017 01:33:14
Свежий ответ!
Fattie 10.03.2018 04:18:25