Nodemailer: Ошибка: прочитать ECONNRESET

Созданный на 19 окт. 2013  ·  21Комментарии  ·  Источник: nodemailer/nodemailer

Получение этого время от времени на долго работающем сервере. Я использую gmail.com для отправки электронных писем, и он работает очень хорошо, за исключением случаев, когда это исключение убивает процесс.

Я установил longjohn, чтобы получить немного лучшие трассировки:

/app/node_modules/longjohn/dist/longjohn.js:181
        throw e;
              ^
Error: read ECONNRESET
    at errnoException (net.js:901:11)
    at onread (net.js:556:19)
---------------------------------------------
    at Readable.on (_stream_readable.js:689:33)
    at SMTPClient.connect (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/client.js:207:17)
    at process._tickCallback (node.js:415:13)
---------------------------------------------
    at module.exports (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/client.js:15:13)
    at SMTPConnectionPool._createConnection (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/pool.js:163:33)
    at SMTPConnectionPool.sendMail (/app/node_modules/nodemailer/node_modules/simplesmtp/lib/pool.js:116:18)
    at SMTPTransport.sendMail (/app/node_modules/nodemailer/lib/engines/smtp.js:121:15)
    at Transport.sendMailWithTransport (/app/node_modules/nodemailer/lib/transport.js:66:20)
    at Nodemailer.sendMail (/app/node_modules/nodemailer/lib/nodemailer.js:193:20)
    at /app/node_modules/nodemailer/lib/nodemailer.js:76:20
    at Nodemailer.validateSettings (/app/node_modules/nodemailer/lib/nodemailer.js:180:5)
---------------------------------------------
    at enqueue (/app/node_modules/bookshelf/node_modules/when/when.js:807:4)
    at scheduleConsumers (/app/node_modules/bookshelf/node_modules/when/when.js:493:3)
    at promiseResolve (/app/node_modules/bookshelf/node_modules/when/when.js:325:4)
    at deferred.resolve.deferred.resolver.resolve (/app/node_modules/bookshelf/node_modules/when/when.js:233:5)
    at [object Object].callback (/app/node_modules/bookshelf/node_modules/when/node/function.js:178:14)
    at Query.handleReadyForQuery (/app/node_modules/pg/lib/query.js:80:10)
    at [object Object].<anonymous> (/app/node_modules/pg/lib/client.js:151:26)

Я использую nodemailer v0.5.3 и simplesmtp v0.3.10.

Вот мой почтовый модуль, который я использую на своем сервере:

var nodemailer = require("nodemailer");

// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP", {
    service: "Gmail",
    auth: {
        user: "[email protected]",
        pass: "password"
    }
});

module.exports = function(options) {
    // send mail with defined transport object
    smtpTransport.sendMail(options, function(error, response) {
        if (error) {
            console.log(error);
        }
        else {
            console.log("Message sent: " + response.message);
        }
    });
};

Я использую это так:

var mail = require("./mailer");
...
mail(options);

Похоже, ошибка происходит где-то внутри simplesmtp и не обрабатывается nodemailer. Но если это то, что я мог бы обойти в своем коде, мне очень интересно услышать о возможном решении.

Самый полезный комментарий

Не могли бы вы также указать соответствующие номера версий для используемых модулей? Номера строк обычно не совпадают с последними в репозитории, поэтому сообщения об ошибках не очень полезны. Запустите npm shrinkwrap и скопируйте блок nodemailer с зависимостями из npm-shrinkwrap.json сюда (не забудьте потом удалить файл shrinkwrap, если он вам понадобится).

Используемые версии несколько устарели. Не могли бы вы переустановить nodemailer (полностью удалить его, чтобы избавиться от зависимостей, а затем установить снова) и посмотреть, сохраняется ли ошибка.

столкнулся с той же проблемой, даже имея версию nodemailer@latest

Все 21 Комментарий

Я также получаю ошибки ECONNRESET от Smtp-соединения.

Но вместо этого я получаю сообщение об ошибке: напишите ECONNRESET.

Вот полный трек от longjohn.

Error: write ECONNRESET
at errnoException (net.js:770:11)
at afterWrite (net.js:594:19)
at pipe (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/starttls.js:87:12)
at starttls (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/starttls.js:21:21)
at SMTPClient._starttlsHandler (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/smtp.js:527:22)
at SMTPClient._dataListener (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/smtp.js:468:20)
at SMTPClient._onData (/apps/yazar_gundemi/api/node_modules/mailer/node_modules/nodemailer/lib/smtp.js:642:14)
at EventEmitter.emit (events.js:96:17)
at onread (net.js:397:14)

Я пытался отладить это, и я немного запутался - событие ошибки должно закончиться в pool.js: 303, но по какой-то причине это не так: S

Вероятно, связано с https://github.com/andris9/simplesmtp/issues/47.

@andris9

Я столкнулся с аналогичной проблемой с Hotmail/Outlook.com с большими вложениями. Пробовал с 3 вложениями общим размером 15Mb. Я получаю следующую ошибку.

{ [Error: read ECONNRESET]
  code: 'ECONNRESET',
  errno: 'ECONNRESET',
  syscall: 'read',
  stage: 'data' }

Но главная проблема в том, что почта успешно отправлена. Но Nodemailer вернул ошибку.

Можете ли вы помочь мне решить эту проблему?

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

Я также получаю ошибку ECONNRESET
Вот полный трек.

Error: write ECONNRESET
    at SMTPConnectionPool._onConnectionError (/node_modules/nodemailer/node_modules/simplesmtp/lib/pool.js:328:17)
    at SMTPClient.EventEmitter.emit (events.js:117:20)
    at SMTPClient._onError (/node_modules/nodemailer/node_modules/simplesmtp/lib/client.js:354:10)
    at CleartextStream.EventEmitter.emit (events.js:95:17)
    at Socket.onerror (tls.js:1425:17)
    at Socket.EventEmitter.emit (events.js:117:20)
    at onwriteError (_stream_writable.js:231:10)
    at onwrite (_stream_writable.js:249:5)
    at WritableState.onwrite (_stream_writable.js:97:5)
    at fireErrorCallbacks (net.js:438:13)
    at Socket._destroy (net.js:472:3)
    at Object.afterWrite (net.js:718:10)

Не могли бы вы также указать соответствующие номера версий для используемых модулей? Номера строк обычно не совпадают с последними в репозитории, поэтому сообщения об ошибках не очень полезны. Запустите npm shrinkwrap и скопируйте блок nodemailer с зависимостями из npm-shrinkwrap.json сюда (не забудьте потом удалить файл shrinkwrap, если он вам понадобится).

Спасибо за быстрый отзыв!

Вот блок nodemailer,

"nodemailer": {
  "version": "0.5.7",
  "from": "[email protected]",
  "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-0.5.7.tgz",
  "dependencies": {
    "mailcomposer": {
      "version": "0.2.4",
      "from": "[email protected]",
      "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.4.tgz",
      "dependencies": {
        "mimelib": {
          "version": "0.2.14",
          "from": "[email protected]",
          "resolved": "https://registry.npmjs.org/mimelib/-/mimelib-0.2.14.tgz",
          "dependencies": {
            "encoding": {
              "version": "0.1.7",
              "from": "[email protected]",
              "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.7.tgz",
              "dependencies": {
                "iconv-lite": {
                  "version": "0.2.11",
                  "from": "[email protected]",
                  "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz"
                }
              }
            },
            "addressparser": {
              "version": "0.2.0",
              "from": "[email protected]",
              "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.2.0.tgz"
            }
          }
        },
        "mime": {
          "version": "1.2.9",
          "from": "[email protected]",
          "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz"
        },
        "ent": {
          "version": "0.1.0",
          "from": "[email protected]",
          "resolved": "https://registry.npmjs.org/ent/-/ent-0.1.0.tgz"
        }
      }
    },
    "simplesmtp": {
      "version": "0.3.15",
      "from": "[email protected]",
      "resolved": "https://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.15.tgz",
      "dependencies": {
        "rai": {
          "version": "0.1.7",
          "from": "[email protected]",
          "resolved": "https://registry.npmjs.org/rai/-/rai-0.1.7.tgz"
        },
        "xoauth2": {
          "version": "0.1.8",
          "from": "[email protected]"
        }
      }
    },
    "readable-stream": {
      "version": "1.1.9",
      "from": "[email protected]",
      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.9.tgz",
      "dependencies": {
        "core-util-is": {
          "version": "1.0.0",
          "from": "[email protected]",
          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.0.tgz"
        },
        "debuglog": {
          "version": "0.0.2",
          "from": "[email protected]",
          "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-0.0.2.tgz"
        }
      }
    }
  }
}

Используемые версии несколько устарели. Не могли бы вы переустановить nodemailer (полностью удалить его, чтобы избавиться от зависимостей, а затем установить снова) и посмотреть, сохраняется ли ошибка.

@andris9 Спасибо! Сделаю это и попробую еще раз.

Та же проблема, когда сервер работает «долгое» время…
Использование nodemailer v0.6.1. Любое исправление для этого еще?

Получил ETIMEDOUT, когда сервер некоторое время работал. Сразу после перезапуска сервера узла он отправляет электронную почту без каких-либо ошибок.

У меня такая же проблема с прямым примером в вашем репо. Пожалуйста, помогите!

Был ли прогресс в этом вопросе?

Не для меня увы. Кажется, это связано с окнами, поэтому я думаю, что буду использовать c9.io для кодирования этой части.

Nodemailer 1.0 использует новый клиентский модуль SMTP, держите меня в курсе, если проблема все еще возникает

Я знаю, что это старая мертвая тема, но у меня та же проблема.

Использование nodemailer v1.4.0

может подключаться с помощью командной строки openssl

  openssl s_client -starttls smtp -host 172.16.204.200 -port 25 -debug

Однако, когда я пытаюсь подключиться к nodemailer с этими учетными данными, я получаю сообщение об ошибке выше.

{
  host: '172.16.204.200',
  port: 25,
  debug: true,
  tls: {
    rejectUnauthorized: false
  }
}

Соединение с нодмейлером.

        transport = nodemailer.createTransport(config.mail);

Фактическое сообщение об ошибке.

 [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read'

Даже я получаю эту ошибку:
{ [Ошибка: чтение ECONNRESET] код: 'ECONNRESET', ошибка: 'ECONNRESET', системный вызов: 'чтение' }

Я пытаюсь использовать сервис use: 'gmail' в транспортном объекте.
версия нодмайлера - 1.11.0

Я нашел этот ответ здесь https://github.com/nodemailer/nodemailer/issues/170 , и это сработало.

{
хост: "mail.hover.com",
безопасное соединение: правда,
порт: 465,
авторизация: {
Пользователь: "---",
проходить: "---"
},
тлс: {
безопасный протокол: "TLSv1_method"
}
}

{
"name": "DayThirteenSignUpForm",
"версия": "1.0.0",
"зависимости": {
"принимает": {
"версия": "1.3.5",
"от": "принимает@>=1.3.5 <1.4.0",
"решено": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz"
},
"массив-сглаживание": {
"версия": "1.1.1",
"от": "массив-сглаживание@1.1.1",
"решено": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
},
"парсер тела": {
"версия": "1.18.3",
"от": "тело-парсер@1.18.3",
"решено": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz"
},
"бсон": {
"версия": "1.1.0",
"от": "bson@>=1.1.0 <2.0.0",
"решено": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz"
},
"байт": {
"версия": "3.0.0",
"от": "байт@3.0.0",
"решено": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"
},
"контент-диспозиция": {
"версия": "0.5.2",
"from": "[email protected]",
"решено": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz"
},
"Тип содержимого": {
"версия": "1.0.4",
"от": "тип контента@>=1.0.4 <1.1.0",
"решено": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
},
"куки": {
"версия": "0.3.1",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
},
"cookie-подпись": {
"версия": "1.0.6",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
},
"отладка": {
"версия": "2.6.9",
"от": "отладка@2.6.9",
"решено": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
},
"депд": {
"версия": "1.1.2",
"от": "depd@>=1.1.2 <1.2.0",
"решено": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"разрушать": {
"версия": "1.0.4",
"от": "уничтожить@>=1.0.4 <1.1.0",
"решено": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
},
"ее-первый": {
"версия": "1.1.1",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
},
"кодировать": {
"версия": "1.0.2",
"от": "encodeurl@>=1.0.2 <1.1.0",
"решено": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
},
"escape-html": {
"версия": "1.0.3",
"от": "escape-html@>=1.0.3 <1.1.0",
"решено": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
},
"этаг": {
"версия": "1.8.1",
"от": "etag@>=1.8.1 <1.9.0",
"решено": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
},
"выражать": {
"версия": "4.16.4",
"от": "экспресс@последний",
"решено": "https://registry.npmjs.org/express/-/express-4.16.4.tgz"
},
"финальный обработчик": {
"версия": "1.1.1",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz"
},
"перенаправлено": {
"версия": "0.1.2",
"от": "переадресовано@>=0.1.2 <0.2.0",
"решено": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz"
},
"свежий": {
"версия": "0.5.2",
"от": "свежий@0.5.2",
"решено": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
},
"http-ошибки": {
"версия": "1.6.3",
"от": "http-errors@>=1.6.3 <1.7.0",
"решено": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz"
},
"иконка-лайт": {
"версия": "0.4.23",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz"
},
"наследует": {
"версия": "2.0.3",
"от": "наследует@2.0.3",
"решено": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
},
"ipaddr.js": {
"версия": "1.8.0",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz"
},
"медиа-тип": {
"версия": "0.3.0",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
},
"память-пейджер": {
"версия": "1.1.0",
"from": "memory-pager@>=1.0.2 <2.0.0",
"решено": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz",
"необязательно": правда
},
"дескрипторы слияния": {
"версия": "1.0.1",
"from": "слияние-дескрипторов@1.0.1",
"решено": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
},
"методы": {
"версия": "1.1.2",
"от": "методы@>=1.1.2 <1.2.0",
"решено": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
},
"мим": {
"версия": "1.4.1",
"от": "мим@1.4.1",
"решено": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz"
},
"MIME-БД": {
"версия": "1.37.0",
"от": "mime-db@>=1.37.0 <1.38.0",
"решено": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz"
},
"мим-типы": {
"версия": "2.1.21",
"от": "мим-типы@>=2.1.18 <2.2.0",
"решено": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz"
},
"монгодб": {
"версия": "3.1.9",
"от": "mongodb@latest",
"решено": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.9.tgz"
},
"монгодб-ядро": {
"версия": "3.1.8",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.8.tgz"
},
"РС": {
"версия": "2.0.0",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
},
"переговорщик": {
"версия": "0.6.1",
"от": "переговорщик@0.6.1",
"решено": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
},
"узловой почтовик": {
"версия": "4.7.0",
"от": "nodemailer@latest",
"решено": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.7.0.tgz"
},
"готово": {
"версия": "2.3.0",
"из": "на готово@>=2.3.0 <2.4.0",
"решено": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
},
"парсерл": {
"версия": "1.3.2",
"от": "парсерл@>=1.3.2 <1.4.0",
"решено": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz"
},
"путь к регулярному выражению": {
"версия": "0.1.7",
"from": "путь к регулярному выражению@0.1.7",
"решено": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
},
"прокси-адрес": {
"версия": "2.0.4",
"from": "proxy-addr@>=2.0.4 <2.1.0",
"решено": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz"
},
"qs": {
"версия": "6.5.2",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
},
"диапазонный анализатор": {
"версия": "1.2.0",
"от": "диапазон-парсер@>=1.2.0 <1.3.0",
"решено": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz"
},
"сырое тело": {
"версия": "2.3.3",
"от": "сырое тело@2.3.3",
"решено": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz"
},
"требовать_необязательный": {
"версия": "1.0.1",
"от": "require_Optional@>=1.0.1 <2.0.0",
«решено»: «https://registry.npmjs.org/require_Optional/-/require_Optional-1.0.1.tgz»
},
"решить-от": {
"версия": "2.0.0",
"от": "разрешить-от@>=2.0.0 <3.0.0",
"решено": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz"
},
"безопасный буфер": {
"версия": "5.1.2",
"from": "[email protected]",
"решено": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
},
"безопасный буфер": {
"версия": "2.1.2",
"from": "safe-buffer@>=2.1.2 <3.0.0",
"решено": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-2.1.2.tgz"
},
"саслпреп": {
"версия": "1.0.2",
"от": "saslprep@>=1.0.0 <2.0.0",
"решено": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.2.tgz",
"необязательно": правда
},
"семвер": {
"версия": "5.6.0",
"от": "semver@>=5.1.0 <6.0.0",
"решено": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz"
},
"Отправить": {
"версия": "0.16.2",
"от": "отправить@0.16.2",
"решено": "https://registry.npmjs.org/send/-/send-0.16.2.tgz"
},
"служить-статический": {
"версия": "1.13.2",
"from": "[email protected]",
"решено": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz"
},
"установить прототип": {
"версия": "1.1.0",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz"
},
"разреженное битовое поле": {
"версия": "3.0.3",
"from": "sparse-bitfield@>=3.0.3 <4.0.0",
"решено": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
"необязательно": правда
},
"статусы": {
"версия": "1.4.0",
"от": "статусы@>=1.4.0 <1.5.0",
"решено": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz"
},
"тип-это": {
"версия": "1.6.16",
"от": "тип-есть@>=1.6.16 <1.7.0",
"решено": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz"
},
"распаковать": {
"версия": "1.0.0",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
},
"утилиты-слияние": {
"версия": "1.0.1",
"от": "[email protected]",
"решено": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
},
"отличаться": {
"версия": "1.1.2",
"от": "вари@>=1.1.2 <1.2.0",
"решено": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
}
}
}

Не могли бы вы также указать соответствующие номера версий для используемых модулей? Номера строк обычно не совпадают с последними в репозитории, поэтому сообщения об ошибках не очень полезны. Запустите npm shrinkwrap и скопируйте блок nodemailer с зависимостями из npm-shrinkwrap.json сюда (не забудьте потом удалить файл shrinkwrap, если он вам понадобится).

Используемые версии несколько устарели. Не могли бы вы переустановить nodemailer (полностью удалить его, чтобы избавиться от зависимостей, а затем установить снова) и посмотреть, сохраняется ли ошибка.

столкнулся с той же проблемой, даже имея версию nodemailer@latest

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

thalesfsp picture thalesfsp  ·  3Комментарии

ryanrolds picture ryanrolds  ·  4Комментарии

pranavpunjabi picture pranavpunjabi  ·  3Комментарии

curlynux picture curlynux  ·  5Комментарии

maggialejandro picture maggialejandro  ·  5Комментарии