OTUS IT News – Telegram
OTUS IT News
7.2K subscribers
4.32K photos
301 videos
5 files
4.29K links
Экспертный контент по востребованным технологиям 2025 года: от разработки и аналитики до искусственного интеллекта и облачных решений.

Более 170 курсов+

🗓 Расписание бесплатных ОУ: https://otus.pw/24Da/
🦉 Голосуй за канал: https://news.1rj.ru/str/boost/Otusjava
Download Telegram
Mail API. Среди распространенных требований, предъявляемых к приложениям уровня Enterprise, следует отметить необходимость отправки электронных писем на стороне сервера. Например, может потребоваться отправить сообщение пользователю после регистрации или смены пароля в системе, или же отправка сообщения с новостной рассылкой. Нет сомнений, что каждый найдет свой случай для применения этой полезной функциональности. Рассматривая стек технологий JavaEE, важно отметить, что все необходимое для отправки электронных писем доступно «из коробки» и можно использовать для любого JavaEE-приложения. Данная технология так же известна, как «Mail API», располагающаяся в пакете «javax.mail». Важно понимать, что JavaEE не решает вопросов создания почтового SMTP-сервера. Для этих целей Вы можете использовать готовые решения, к примеру, любой общедоступный сервер как Gmail, Yandex, Mail и т.д. Для целей отправки писем достаточно знать параметры используемого почтового сервера: имя и порт сервера, параметры соединения. Для безопасной отправки писем также допустимо использование «SSL» и «TLS-протоколов». С помощью «Mail API» можно отправлять не только простые письма, но и включать вложения, прикреплять изображения, документы, использовать HTML-форматирование и т.д. Наиболее значимые сущности для возможности отправки email — это класс Session, инициализирующий основные параметры для соединения с SMTP-сервером, MimeMessage, включающий информацию о получателе письма, теме, теле и вложениях сообщения, а также класс Transport, реализующий непосредственную отправку методом void send(MimeMessage message). Обратите внимание, что количество инициализируемых параметров соединения класса Session напрямую зависит от типа SMTP-сервера. Для серверов, в которых не требуется какой-либо аутентификации, достаточно указать лишь свойство «mail.smtp.host» и оставить без изменения 25й порт, используемый по умолчанию. Но для случаев использования почтовых серверов, поддерживающих SSL или TLS аутентификацию, важно детализировать оба параметра «mail.smtp.host» и «mail.smtp.port». Если рассматривать Gmail в качестве почтового сервера, то в нем используются 465й и 587й порты для SSL и TLS, соответственно (самая актуальная информация о деталях почтового сервера Gmail доступна по ссылке). Взгляните на код метода, обеспечивающего отправку письма, используя TLS-аутентификацию: «public static void sendEmail(final String username, final String password)»
«throws MessagingException {»
«Properties props = new Properties();»
«props.put(„mail.smtp.auth“, „true“);»
«props.put(„mail.smtp.starttls.enable“, „true“);»
«props.put(„mail.smtp.host“, „smtp.gmail.com“);»
«props.put(„mail.smtp.port“, „587“);»
«Session session = Session.getInstance(props,»
«new javax.mail.Authenticator() {»
«protected PasswordAuthentication getPasswordAuthentication() {»
«return new PasswordAuthentication(username, password);»
«}»
«});»
«Message message = new MimeMessage(session);»
«message.setFrom(new InternetAddress(„youremail@gmail.com“));»
«message.setRecipients(Message.RecipientType.TO
«InternetAddress.parse(„whomemail@gmail.com“));»
«message.setSubject(„Your Subject“);»
«message.setText(„This is test email! Don’t answer!“);»
«Transport.send(message);»
«}»
Данный код в особых комментариях особо не нуждается, поэтому для лучшего закрепления материала предлагается реализовать метод, который отправляет email через Gmail, но уже с использованием SSL-аутентификации.
Друзья, приглашаем Вас к прочтению свежей и полезной статьи "Применение DevOps практики Infrastructure as Code (IaC)" опубликованной на официальной странице OTUS в Facebook. Читать сейчас https://goo.gl/LB4VXA
Внимание, уже через час стартует сразу два Дня Открытых Дверей по курсам: «Разработчик Python» и «DevOps практики и инструменты». Старт встреч ровно в 20:00 по московскому времени. Трансляция встречи «Разработчик Python» https://goo.gl/C2Rwpp
Трансляция встречи «DevOps практики и инструменты» https://goo.gl/95nRGe

У вас есть еще час, чтобы пройти тестирование и принять участие в розыгрыше бесплатных мест обучения. До встречи в прямом эфире!
Мы начинаем дни открытых дверей по курсам «DevOps практики и инструменты» и «Разработчик Python». Присоединяйтесь!
20 ноября проходил открытый вебинар по курсу «Разработчик JavaEE» в OTUS. Почти 500 человек в прямом эфире с экспертом по Java технологиям Виталием Ивановым. Смотреть запись вебинара можно тут https://otus.pw/PEmF/
Ни для кого не секрет, что язык PHP имеет довольно низкий порог вхождения, что делает его как одним из самых удобных языков для быстрого создания веб-приложений, так и самым уязвимым для неоптимизированного кода. Зачастую разработчики даже middle-уровня ограничиваются в своей работе тем, что используют среды разработки типа OpenServer или XAMPP. Разумеется, для небольших проектов в этом нет ничего фатального, но как только размер проекта вырастает, то появляются новые проблемы, которые до этого не были известны. Во-первых, большие проекты не терпят отключения на время обновления кода. При этом на самом сервере, ни о каком OpenServer речи не идет — зачастую случается, что у разработчика стоит Windows, а на сервере работает Linux-подобная ОС. При выкатке проекта выясняется, что код, который работал локально, вдруг перестаёт работать в Production-окружении, прерывая работу ресурса. Во-вторых, большие проекты не ограничиваются простым делением на DEV и PROD. Они имеют сервера QA, где идет приемочное тестирование, имеют множество разработчиков, которым к тому же надо обмениваться своими наработками. И их среды разработки тоже могут отличаться, к примеру, потому, что кто-то не обновил ПО. Так что же делать в таких ситуациях? На помощь приходят виртуальные машины, которые собираются по строго заданным шаблонам с предустановленным единообразным LAMP/LNMP-стеком. Их прелесть также и в том, что они совершенно беспроблемно могут создавать неограниченное число копий Production-окружения, делая процесс разработки максимально гибким. Можно собирать машину вручную, но для быстрого старта можно использовать существующие решения автоматизации. Мы рассмотрим работу в Windows-системах. Достаточно будет двух программ — Vagrant и VirtualBox. VirtualBox — это среда для управления и запуска виртуальных машин, а Vagrant — это программа автоматизации их сборки. Более того, энтузиасты уже подготовили готовые инструкции для работы с PHP, NGINX, MySQL и другими популярными модулями стека. Если Вы планируете работать с этой сборкой, то установите также Git. При необходимости нужно добавить путь к Vagrant в переменную PATH. «set PATH=%PATH%;C:HashiCorpVagrantbin» Теперь мы можем создать отдельную директорию для нашей виртуальной машины или же перейти в уже созданную. Можно развернуть «голую» ОС Ubuntu, либо взять готовую сборку из репозитория на GitHub «https://github.com/kiaplayer/vagrant-php» Если рассматривать второй случай, то нужно будет выполнить команды «git clone https://github.com/kiaplayer/vagrant-php.git» Инструкция по сборке виртуальной машины располагается в директории «.chef.» Это файл Vagrantfile, который нужно скопировать на уровень выше. После этого уже можно запустить сборку самой виртуальной машины «vagrant up». По завершению её работы в меню VirtualBox появится новая строчка с Вашей только что созданной виртуальной машиной. Она уже имеет возможность подключения по сети, а также располагает стеком LNMP. Как видите, работа с виртуальными машинами совсем несложная!
Ваше мнение очень важно для нас.
По итогу дня хотим рассказать о том, что вчера успешно завершен День Открытых Дверей по курсу «Разработчик Python». Было увлекательно, информативно и, как всегда, полезно. Для тех, кто не успел присоединиться в прямом эфире приглашаем к просмотру записи эфира на канале YouTube https://otus.pw/NLnq/
До старта первого урока остался один день.

Друзья, если у вас есть вопросы или пожелания Вы всегда можете оставлять их в комментариях. Благодаря обратной связи мы сможем совершенствовать подход к образованию каждый день. Как ни банально, но тем не менее, именно ваше мнение очень важно для нас.
Наступил первый день занятий по курсу "Разработчик Python"!Впереди нас ждут пять увлекательнейших месяцев в познании всех тонкостей программы обучения. Сегодня последний день, когда можно присоединиться к новой группе и мгновенно приступить к обучению. Мы поздравляем всех, кто уже с нами! Всех слушателей, кто сегодня начнет свое первое занятие. И конечно же, мы спешим поздравить с этим событием преподавателя курса Станислав Ступникова!
Пока сегодня со всех сторон вас атакуют акциями Черной пятницы с предложением купить что-то, мы в OTUS считаем, что есть вещи, которые действительно стоит приобретать не думая о лимитах - ведь они не обесцениваются! Например, знания, дружба, забота и доброе отношение.
Поэтому мы решили сделать вам небольшой подарок и дать возможность получить 30% привилегий лояльных клиентов до конца сегодняшнего дня.
Приобретайте то, что действительно важно!
https://otus.pw/MUpm/
4 декабря состоится День Открытых дверей по курсу Java Enterprise. Судя по количеству ваших обращений встреча обещает быть увлекательной и оживленной. Бесспорно, курс Java Enterprise, один из самых востребованных в мире IT образования, поэтому, в данный момент мы ведем активную подготовку к этому дню и будем рады услышать ваши вопросы и пожелания уже сейчас. Один из лучших преподавателей образовательного проекта OTUS, Виталий Иванов, в прямом эфире для вас 4 декабря в 20:00 по московскому времени. Узнать больше о курсе и преподавателе можно тут https://otus.pw/xICE/
Новость о курсе «Разработчик С++» или "Все хотят учиться у Шебордаева".
Друзья, уже через несколько часов стартует прямое включение Дня Отрытых Дверей образовательного проекта OTUS по курсу «Разработчик С++». Ура! В 20:00 часов для вас откроет мир C++ наш великолепный Дмитрий Шебордаев! Гордость — преподаватель нашего проекта! Учиться у Дмитрия — это настоящий восторг и бесценный кладезь знаний. В тонкостях C++ мы будем разбираться во время обучения, а сегодня, мы будем обсуждать важные вопросы на повестке старта курса. Все, о чем вы хотели знать, относительно «Разработчика С++» можно спросить сегодня у Дмитрия. И да, принять участие в битве за возможность стать обладателем привилегии бесплатного обучения в OTUS можно сегодня пройдя тестирование https://otus.pw/wzsQ/
Поздравляем новую группу курса «Devops практики и инструменты» в первым днем занятий! Впереди нас ждут увлекательные пять месяцев учебы с полным погружением в тонкости Devops под руководством Александра Титова, Артема Старостенко и Сергея Богатырец. Расписание занятий вы всегда можете найти на сайте в разделе вашего курса. В социальных сетях мы всегда работаем для вас в онлайн режиме. Если у вас возникают вопросы — смело задавайте их в комментариях.
Сегодня последний день, когда можно успеть присоединится в группу https://goo.gl/yZbLGh
По традиции мы подготовили для вас свежий, информативный и полезный пост! На этот раз он посвящен теме PHP. "В мире современного ПО и высоких скоростей разработки можно смело говорить о том, что ни один процесс написания программного кода не обходится без ошибок. Поиск логических ошибок возможен почти всегда - для этого есть фреймворки семейства xUnit и другие". Читать статью полностью https://goo.gl/5UR6VE
JSON API
. Сегодня довольно сложно встретить веб-приложение или мобильное приложение, использующее для обмена информацией с бэкендами и сторонними системами формат данных, отличный от JSON. Многие знают, что среди его основных преимуществ отмечаются такие, как простота, отсутствие избыточности при передаче (в сравнении с XML) и как следствие легковесность. На клиентской стороне, написанной на JavaScript или одном из его фреймворков, работа с JSON крайне проста и равносильна работе с обычным JS-объектом. Читать статью полностью https://goo.gl/MUpm8V
JSON API
. Сегодня довольно сложно встретить веб-приложение или мобильное приложение, использующее для обмена информацией с бэкендами и сторонними системами формат данных, отличный от JSON. Многие знают, что среди его основных преимуществ отмечаются такие, как простота, отсутствие избыточности при передаче (в сравнении с XML) и как следствие легковесность. На клиентской стороне, написанной на JavaScript или одном из его фреймворков, работа с JSON крайне проста и равносильна работе с обычным JS-объектом. Читать статью полностью https://goo.gl/MUpm8V
По итогу, День Открытых Дверей с Дмитрием Шебордаевым по курсу «Разработчик С++» принес нам много полезного, и сегодня, мы готовы объявить имена победителей тестирования. Лучшие результаты показали Лусс Влад и Хапов Кирилл. Поздравляем вас и вручаем привилегию бесплатного обучения по курсу «Разработчик С++». Для тех, кто только присоединился к нашим комьюнити оставляем ссылку на курс С++ https://otus.pw/9NKx/