|
10 функций электронной почты, без которых не обойтись никому
Фото: Depositphotos
Управление рассылкамиИнтернет-магазины все чаще просят пользователей оставлять электронную почту для обратной связи по заказам и новостных рассылок. В 2020 все крупные сервисы для создания электронной почты дают возможность легко отказаться от получения таких писем. Почта Mail.ru собрала все рассылки на одной странице в разделе «Управление рассылками». Можно увидеть, кто регулярно присылает сообщения о специальных предложениях или корпоративных новостях, сколько их накопилось, а также отписаться от надоевших отправителей в один клик. Список рассылок обновляется раз в сутки, ненужные письма также можно удалить и освободить место в ящике.
Отложенная отправкаЕсли с утра необходимо отправить несколько рабочих писем, но на это же время запланирован перелет или деловая встреча, функция отложенной отправки спасет ситуацию. В Почте Mail.ru можно выбрать точную дату и время, когда сообщение уйдет к адресату. Для этого требуется нажать на значок часов в нижнем правом углу после составления письма.
Отложенное письмо будет храниться в папке «Исходящие» до указанного времени. До этого момента его можно дополнить, отредактировать или вовсе отменить отправку.
ВидеозвонкиЕсли времени на то, чтобы организовать конференцию в Zoom или вспомнить пароль от иных сервисов нет, видеозвонок можно запустить из электронной почты. Для этого в Почте Mail.ru нужно нажать на стрелку рядом с окном «Написать письмо» и выбрать опцию «Предложить видеозвонок». Перейти к видеозвонкам можно через отдельную ссылку в нижнем левом углу Почты.
Ссылка на видеоконференцию будет сгенерирована и вставлена в письмо. В групповых звонках могут принять участие до 100 человек. Для того, чтобы присоединиться к диалогу, не нужно скачивать отдельное приложение или регистрироваться в Почте.
КалендарьИз Почты Mail. ru можно напрямую перейти в Календарь — достаточно кликнуть по одноименной ссылке в нижнем левом углу. Календарь позволяет совмещать рабочие встречи и личные дела, добавлять события на неделю, месяц или год вперед и даже подсказывает погоду. Для того чтобы точно не забыть о важном мероприятии, можно настроить систему уведомлений: на электронный адрес или внутри интерфейса Календаря.
Из Календаря можно организовать видеозвонок. Для этого достаточно добавить событие, определиться со временем и нажать на «Создать ссылку на звонок». Ссылка на конференцию генерируется автоматически и добавляется в описание события.
ЗадачиСервис интегрирован в Почту Mail.ru и Календарь. Задачи заменяют бумажный планер, позволяя расписывать личные и рабочие дела. Их можно ранжировать по спискам и приоритету, планировать наперед, редактировать, перемещать между списками и вычеркивать и скрывать после выполнения. Все записанные планы сортируются несколькими способами: по алфавиту, по приоритету и по дате.
НапоминанияВ потоке переписки пользователи могут пропустить важное письмо. Функция «Напоминания» Почты Mail.ru позволит мягко напомнить собеседнику о полученном сообщении. Кнопка колокольчика в нижнем правом углу в окне отправки сообщения предлагает несколько вариантов срока напоминания, если ответа нет — через несколько часов или несколько дней. Если же вы сами опасаетесь забыть о важном полученном письме, в мобильном приложении Почты можно установить напоминание о нем самому себе. Для этого нужно открыть сообщения, перейти по значку с тремя точками и выбрать дату и время для повторного уведомления.
Центр оплатПочта в 2020 — это не только про деловое общение и рассылки. С ее помощью можно оплатить электричество и воду, проверить наличие штрафов ГИБДД и помочь благотворительным фондам. Для этого нужно перейти на страницу «Оплаты» в левом нижнем углу Почты Mail.ru и выбрать необходимую категорию платежа. Сервис сохраняет реквизиты банковской карты, чтобы не вводить их каждый раз, ведет историю оплат и обеспечивает безопасность и надежность транзакций.
ОблакоИз Почты Mail.ru можно напрямую получить доступ в Облако. Туда автоматически подгружаются все файлы из входящих сообщений электронной почты, чтобы обеспечить к ним постоянный доступ. В Облаке хранятся не только личные файлы — в настройках появилась функция создания общих с другими пользователями папок, чтобы, например, работать над групповым проектом или делиться фотографиями.
Вход через PIN-код или отпечаток пальцаДополнительные уровни защиты при доступе в приложение Почты Mail.ru позволяют меньше беспокоиться о сохранности данных и личных переписок. Для смартфонов с функцией Touch ID доступна функция входа в приложение по отпечатку пальца. Если же активировать функцию «Защита PIN», то получить доступ к ящику можно будет только после введения установленного кода.
«Умный ответ»В 2017 году Почта Mail.ru первой дала пользователем возможность отвечать на письма одной кнопкой. Функция «Умный ответ» работает на основе нейросети, которая анализирует текст письма и предлагает подходящие по смыслу варианты ответа. Это позволяет сэкономить время и силы при отправке коротких сообщений, делегируя эту задачу алгоритмам машинного обучения.
Это тоже интересно:
назначение, возможности, основные технологии работы
Развитие технических средств передачи сообщений не могло не затронуть и такую область, как почта. В результате появился принципиально новый вид коммуникации, названный электронной почтой.
Электронная почта (Electronic mail, или сокращенно E-mail) — это способ отправки и получения сообщений с помощью компьютерной сети.
E-mail работает по принципу обычной почты. Аналогом письма в этом случае является электронное сообщение, аналогами почтовых отделений — почтовые серверы, а транспорта — компьютерная сеть.
Каждый абонент, подключенный к почтовому серверу, имеет свой электронный адрес или, образно говоря, почтовый ящик. Доступ к этому ящику защищен паролем абонента. Благодаря электронному адресу можно идентифицировать любого абонента в сети (все адреса должны быть оригинальными). Абонент и сервер для обмена сообщениями используют кабель (если абонент подключен к ЛВС с почтовым сервером) или обычную телефонную линию (в случае удаленного соединения).
Сообщение, прежде чем попасть с одного сервера на другой, может проходить ряд промежуточных серверов. Почтовые серверы обмениваются сообщениями в автоматическом режиме, причем маршрут движения сообщения в сети рассчитывается специальной программой — маршрутизатором.
Когда сообщение прибывает на сервер назначения, адресат при очередном соединении с сервером получает уведомление о поступлении почты. Таким образом, чтобы получить сообщение, пользователю не нужно постоянно держать включенным свой компьютер. Включить компьютер и подключиться к сети он сможет в любой момент, когда пожелает получить или отправить сообщения. Такой режим работы, как известно, называется off-line.
Электронная почта зародилась для обмена текстовыми сообщениями через сети большой протяженности. Сейчас средства электронной почты позволяют передавать и принимать любые файлы — исполняемые, графические, звуковые, видео. Услуги E-mail стали реальной альтернативой обычной бумажной почте. Произошло это благодаря высокой скорости и надежности передачи сообщений. За считанные минуты сообщение электронной почты попадает к адресату, который может находиться в том же городе или за океаном.
Скорость передачи сообщений ограничивается в основном пропускной способностью линий связи между компьютерами. Если компьютер подключается к сети через модем и телефонную линию, то самым существенным фактором ограничения скорости обмена будет качество отечественной телефонной линии. В результате скорость обмена может колебаться от 28800 бит/с (для крупных городов и современных АТС) до 2400 бит/с (для устаревших линий связи).
Чтобы сообщение электронной почты нашло своего адресата, необходимо правильно указать адрес (E-mail). Почтовый адрес состоит из двух частей, разделенных знаком @. Левая часть адреса — это локальное имя пользователя (имя почтового ящика), а правая часть — имя домена. Значок @ обозначает предлог at («в», «при») и называется попросту «собака» или «обезьяна». То есть адрес
можно прочитать буквально: ящик nora в домене krok.net.ua.
Имя домена разбивается точками на отдельные слова — поддомены. Имена поддоменов следуют слева направо в порядке возрастания уровня иерархии. Справа, на самом верхнем уровне, находится название страны: ua — Украина, ru — Россия, fr — Франция, uk — Великобритания, su — код, сохранившийся для городов бывшего Советского Союза. При рассмотрении имен доменов в WWW отмечалось, что на верхнем уровне не всегда находится код страны. Могут встречаться поддомены верхнего уровня: com, edu, gov и др.
Левее расположено имя поддомена, уточняющего положение сервера в домене верхнего уровня, например, поддомены kiev.ua, msk.ru, spb.su, odessa. ua отвечают городам. Еще левее может располагаться имя поддомена организации.
Исходя из имени домена, можно восстановить имя почтового сервера провайдера. Обычно оно получается добавлением через точку слова mail к имени домена, например, mail.stcu.kiev.ua или mail.cargo.relcom.ru.
Чтобы пользователь мог посылать и получать электронные сообщения, на его компьютере должно быть установлено ПО клиента электронной почты. Существуют различные почтовые программы, обладающие разными возможностями и предназначенные для работы в различных ОС. Широко распространены почтовые программы Microsoft Exchange, Outlook Express, Microsoft Outlook, Internet Mail, Eudora, Exchange Mail и др. Часто эти программы включаются в состав ОС: Microsoft Exchange устанавливается на компьютер вместе с Windows 95, а Outlook Express — вместе с Windows ХР. Программы, способные работать с электронной почтой, входят также в пакеты приложений, чему пример универсальная программа Microsoft Outlook 2000 в составе Microsoft Office 2000.
Функциями почтовых программ являются получение и чтение сообщений, подготовка и отправка сообщений, ведение адресной книги.
К преимуществам электронной почты относятся:
высокая скорость пересылки сообщений
на обмен информацией затрачиваются несколько минут, в то время как при использовании обычной авиапочты на пересылку корреспонденции затрачивается не менее недели
экономичность
одна страница текста передается за доли секунды, а по телефону необходимо затратить несколько минут
возможность работать с текстом, а не со звуком (голосом), что позволяет обдумать и отредактировать ответ во время обмена информацией, особенно на иностранном языке, не требуется мгновенная реакция
одновременная пересылка по нескольким адресам
удобный способ для передачи приглашений, рекламных сообщений и т.п.
передача файлов вместе с письмом.
Появление электронной почты можно отнести к 1965 году, когда сотрудники Массачусетского технологического института (MIT) Ноэль Моррис и Том Ван Влек написали программу MAIL для операционной системы CTSS (Compatible Time-Sharing System), установленную на компьютере IBM 7090/7094.
Электронная почта является новым современным средством передачи информации. В отличие от обычной почты, по электронной – передаются электронные копии сообщений, файлы, программы, различные данные те, информация, обработанная с помощью компьютера. Основными объектами, составляющими систему электронной почты, являются специальные компьютеры, называемые почтовыми серверами, и компьютеры-клиенты, которые обслуживают физических клиентов. Необходимые компоненты этой системы — специальные программы и протоколы.
Электронная почта, как и обычная, работает с системой электронных “почтовых отделений’ — почтовых серверов, которые обеспечивают пересылку писем по глобальным сетям, Они взаимодействуют с помощью почтовых протоколов, обеспечивающих пересылку и распознавание передаваемой в сети информации. Компьютеры — клиенты почтовых серверов обслуживают пользователей электронной почты. Каждый получает свой почтовый адрес и свой “почтовый ящик” на этом компьютере, те, область памяти, а также пароль для доступа к нему.
С помощью почтовой программы можно создавать сообщения, считывать их с почтового сервера, работать с адресной книгой, хранить и организовывать письма в папках “почтового ящика”, готовить файлы для пересылки и преобразовывать их в нужный формат после получения и др.
С помощью почтовой программы пользователь создает сообщение адресату, задает адрес, отправляет сообщение, для чего соединяется с почтовым сервером. Во время соединения почтовый сервер запрашивает имя пользователя и его пароль. Иначе сеанс связи не состоится. После соединения подготовленная почта автоматически отправляется на сервер и далее через передачу от одного к другому почтовому серверу достигает адресата. Сразу после отправки корреспонденции автоматически происходят получение почты клиентом. Считанные в его область памяти сообщения и файлы сортируются и раскладываются по почтовым ящикам пользователей. Адресат при загрузке своего ящика видит разложенные по палкам сообщения: новые, старые, отправленные. Он может удалять, сортировать и классифицировать их.
3 новых функции электронной почты, к которым вы можете получить доступ в HubSpot прямо сейчас
Опубликовано: 2020-12-28
Из всех инструментов HubSpot его функция электронного маркетинга является одной из наиболее широко используемых как большими, так и маленькими компаниями.
Электронная почта остается важным элементом отличной маркетинговой стратегии, а интерфейс HubSpot позволяет легко создавать индивидуальные электронные письма и эффективно отслеживать эффективность.
Но, конечно, всегда есть возможности для улучшения.
Недавно HubSpot внесла три ключевых улучшения в свою функцию электронного маркетинга, которые позволяют маркетологам проводить маркетинговые кампании по электронной почте с еще большей легкостью и эффективностью, чем раньше.
Что нового в инструменте электронной почты HubSpot?
Возможность отправлять электронные письма без домена компании
Для малого бизнеса электронный маркетинг так же важен (если не важнее), как и для компаний корпоративного уровня.
Такое общение один на один, чтобы делиться текущими акциями, обновлениями компании, новым контентом или просто следить за клиентами, важно для малых предприятий, чтобы привлечь свою аудиторию на всех этапах воронки.
Ранее, из-за политик DMARC, HubSpot требовал, чтобы все электронные письма отправлялись с адреса электронной почты, привязанного к домену компании, что блокировало любых бесплатных поставщиков услуг электронной почты, таких как Gmail, Yahoo или AOL.
Тем не менее, многие новые малые предприятия еще не имеют адреса электронной почты домена компании, но это не делает их потребность в оптимизированном общении по электронной почте менее важной.
Чтобы приспособиться к этим малым предприятиям, HubSpot обновил свою систему, чтобы позволить адресам электронной почты домена вне компании выполнять эти кампании.
Чтобы соответствовать политикам DMARC, HubSpot придется немного изменить адреса электронной почты бесплатных провайдеров. Например, если ваш адрес электронной почты — «[email protected]», адрес «От» будет отображаться как «example. [email protected]» в почтовом ящике получателя.
Вы узнаете, был ли изменен ваш адрес, если вы получите уведомление, изображенное на изображении выше, после выбора адреса «От».
Чтобы гарантировать, что ответы по электронной почте по-прежнему отправляются нужному человеку, HubSpot добавит новый адрес электронной почты для ответа к адресу [email protected]
Обновления в раскрывающихся списках «От имени» и «От адреса»
Честно говоря, я даже не подозревал, что это разочаровало меня в инструменте электронной почты HubSpot, пока не вышло это обновление.
Когда вы создаете новое электронное письмо в HubSpot, первое, что вам нужно сделать, — это выбрать имя и адрес, по которому должно отображаться электронное письмо.
Раньше HubSpot использовал раскрывающееся меню для выбора обоих этих параметров, но, услышав отзывы о том, что его сложно использовать, компания немного изменила эту функцию, чтобы добавить основные функции, которые отсутствовали или которые было трудно найти.
На скриншоте выше вы увидите стандартное раскрывающееся меню «От имени» с тремя ключевыми элементами, добавленными для упрощения взаимодействия с пользователем:
- Вариант добавления имени: это кажется таким простым, но, исходя из личного опыта, это было очень необходимо. Раньше вы могли добавить «От имени» только после того, как уже добавили новый связанный адрес электронной почты. Это разочаровало, поскольку иерархия шаблона побудила многих сначала добавить новое имя, но оказалось, что это невозможно, пока вы не выполните шаг ниже. Даже зная это, мне приходилось несколько раз отказываться от функции «Добавить от имени».
- Токен персонализации перемещен в раскрывающийся список: если вы хотите, чтобы имена определенных контактов отличались от имен отправителей в их электронных письмах (возможно, в зависимости от продавца, владельца контакта, менеджера аккаунта, региона и т. Д.), Вы можете использовать токен персонализации, чтобы показать это на основе связаться с собственностью. Это всегда было опцией в инструменте электронной почты, но пользователям было сложно ее найти, поэтому HubSpot поместил ее в обновленный раскрывающийся список для упрощения использования.
- Параметр «Управление от имени». Допустим, вы добавляете новый параметр «От имени» и случайно ошиблись при написании имени. Раньше эта ошибка оставалась вариантом навсегда , без возможности ее удаления. Для команд с несколькими людьми на портале электронной почты это может легко привести к ошибкам. Чтобы исправить это, HubSpot добавил эту опцию «Управление от имен», где вы можете войти и удалить любые ранее добавленные пользовательские имена. Так просто, но так важно.
Улучшенный способ управления отказами и отказом от подписки
При любой массовой рассылке писем отказы неизбежны — и есть множество причин, по которым письмо может отказываться.
Адрес электронной почты может быть введен неправильно, сотрудник может покинуть организацию, в результате чего предыдущий адрес электронной почты станет недействительным, или могут возникнуть проблемы с подключением к серверу, которые приводят к сбою отправки электронной почты.
Поскольку клиенты HubSpot платят по количеству контактов в CRM, это различие важно учитывать при удалении неактивных контактов из базы данных.
Однако раньше не было способа узнать, почему письмо не было отправлено для конкретной кампании. Это может привести к тому, что маркетологи будут неправильно маркировать активные контакты как жесткие отказы и рисковать полностью удалить людей с портала.
Теперь HubSpot добавил новую функцию отчета, которая дает более четкое представление о том, почему контакт отклонился, что упрощает определение того, кого можно безопасно удалить из базы данных.
Теперь пользователи могут загружать CSV-файл с портала электронного маркетинга с параметрами настройки, которые упрощают поиск нужных данных.
В отчете указываются не только контакты, которые были отклонены, но и причина, почему. Если вы хотите получить более конкретную информацию, вы также можете выбрать экспорт на основе причины отказа с любой комбинацией следующего: отписавшиеся контакты, возвращенные контакты или заявленный спам.
Он также включает в себя возможность исключить контакты, которые уже были удалены, или показать все исторические данные о отказах. Раньше в отчете по умолчанию отображались как удаленные, так и не удаленные контакты, что могло исказить представление о том, сколько «плохих» контактов было на портале.
Последние мысли
Если вы заинтересованы в тестировании этих новых функций, они в настоящее время доступны для всех клиентов HubSpot.
Некоторые из этих обновлений могут показаться незначительными, но они облегчают общие проблемы, возникающие при использовании инструмента электронной почты, и значительно упрощают процесс. Это показывает, что HubSpot активно прислушивается к своим клиентам и стремится к постоянному совершенствованию.
Если у вас есть другие предложения или проблемы с инструментами HubSpot, вы можете проверить функцию сообщества HubSpot, чтобы сообщить команде HubSpot или узнать, думают ли другие пользователи так же. Как правило, HubSpot извлекает идеи для обновления непосредственно из самых популярных запросов или вопросов на этом форуме.
Улучшение взаимодействия по электронной почте с автоматическим планированием (Dynamics 365 Marketing)
- Чтение занимает 3 мин
В этой статье
Анализируя исторические данные, автоматизированный планировщик выбирает лучшее время для отправки сообщения электронной почты в течение уникального для каждого контакта времени.
Время, которое выбирает автоматизированное расписание, основано на времени прибытия каждого контакта на плитку электронной почты. Временной период уникален для каждого контакта. Временной период ограничен одним из следующих (в зависимости от того, что раньше):
- Запланированное время окончания цикла взаимодействия с клиентом.
- Срок действия сообщения электронной почты, если настроено.
- Семь дней в будущем.
Функция имеет два основных компонента:
- Автопланировщик для циклов взаимодействия с клиентом: позволяет автоматически планировать доставку сообщений каждому отдельно на основании оптимального времени для отправки, рассчитанного ИИ для этого контакта.
- Подробные результаты взаимодействия по электронной почте: предоставляют информативные тепловые карты, которые позволяют выделить тренды взаимодействия по электронной почте для каждого отдельного контакта. Доступны следующие данные:
- Число открытий сообщения электронной почты: показывает, как часто контакт открывал одно из ваших писем в каждый час каждого дня недели. Позволяет узнать дни и время, когда контакт обычно использует почтовый клиент.
- Время реакции на сообщение электронной почты: показывает, как быстро контакт открывал сообщения в зависимости от дня недели и часа доставки.
- Оптимальное время для отправки сообщения электронной почты: отображает матрицу, которая указывает, в какое время в какие дни недели, вероятно, лучше всего отправлять сообщения текущему контакту. Для каждого контакта ИИ анализирует время реакции и время открытия и объединяет их с данными, собранными для аналогичных контактов, для генерации общих рекомендаций.
Примечание
Прежде чем можно будет использовать автоматическое планирование, ваш администратор должен включить и настроить эту функцию. Если вы не видите функции, описанные в этом разделе, попросите администратора включить автоматическое планирование для вашего сайта. Подробнее: Включение и настройка функций искусственного интеллекта
Важно!
Автоматизированный планировщик доступен только на плитке Электронная почта.
Создайте цикл взаимодействия с клиентом, который автоматически отправляет сообщения в оптимальное время
Обычно цикл взаимодействия с клиентом обрабатывает все контакты в целевом сегменте одновременно и доставляет сообщения в соответствии с графиком выполнения без учета истории взаимодействия с каждым конкретным контактом. Однако благодаря автоматическому планированию можно использовать ИИ для оптимизации времени доставки для каждого отдельного получателя. Это часто увеличивает долю открытых сообщений.
Для создания цикла взаимодействия, в котором используется оптимизированное время доставки:
Выберите Marketing > Исполнение маркетинга > Циклы взаимодействия с клиентом, затем создайте или откройте цикл взаимодействия с клиентом.
Разработайте цикл взаимодействия как обычно, но включите Автоматическое планирование для каждой плитки электронной почты, где вы хотите использовать автоматическое планирование. Чтобы активировать автоматизированное запланированное выполнение, выберите плитку электронной почты, перейдите в Расписание и поверните переключатель для Автоматическое планирование.
Повторите предыдущий шаг для каждого письма в вашем цикле, где вы хотите использовать автоматизированное планирование.
Примечание
При автоматическом планировании вокруг указанных даты и времени устанавливается временное окно, после чего каждый контакт удерживается в нем до наступления оптимального времени.
Чтобы увидеть информацию о том, когда конкретный контакт обычно открывает ваши сообщения, сколько времени у него на это уходит, а также получить советы по лучшему времени для отправки:
Выберите Marketing > Клиенты > Контакты, чтобы открыть список контактов.
Найдите и выберите контакт, который нужно проанализировать.
Откройте вкладку Аналитика, а затем выберите Число открытий сообщения электронной почты на навигаторе вкладок. Эта страница содержит три графика, которые показывают, как и когда этот контакт взаимодействует с вашей электронной почты, а также график, который показывает лучшее время для отправки сообщений этому контакту на основе собранных результатов.
График Число открытий сообщения электронной почты следует читать следующим образом:
- На оси x указано время.
- На оси y указаны дни недели.
- Цветные квадраты на каждом пересечении дня и времени указывают, как часто контакт открывал сообщение в этот день и это время. Чем темнее квадрат, тем чаще контакт открывал сообщение в это время.
График Время реакции на сообщение электронной почты следует читать следующим образом:
- На оси x указано время.
- На оси y указаны дни недели.
- Цветные квадраты на каждом пересечении дня и времени указывают, сколько времени обычно у контакта уходит на открытие сообщения, доставленные в этот день и в это время. Чем темнее квадрат, тем быстрее контакт обычно открывает сообщения, доставленные в этот день и время.
Матрицу Оптимальное время для отправки сообщения электронной почты следует читать следующим образом:
- На оси x указано время.
- На оси y указаны дни недели.
- Цветные квадраты на каждом пересечении дня и времени указывают дни и время, когда, по мнению ИИ, лучше всего отправлять сообщения этому контакту. Самые темные квадраты указывают на дни и время, которые, по мнению ИИ, лучше всего подходят для отправки сообщений этому контакту, а самые светлые квадраты — хуже всего. Большинство сочетаний дня и времени имеют промежуточные оттенки, но более темные подходят лучше.
При выборе автоматического графика доставки электронной почты система будет использовать эти результаты, чтобы решить, когда доставить сообщение каждому контакту.
Факс | OKI
Префикс и суффикс используются в следующих форматах. «Номер факса» в этом формате это номер, который выбирается в пункте «Добавить получателя».
«Префикс + Номер факса + Суффикс»
Например, если установить «ФАКС=» в качестве префикса и «@faxserver» в качестве суффикса, а затем выполнить функцию сканирования на факс-сервер, то электронная почта получателя (Кому:) будет выглядеть так: «ФАКС=012-345-6789@faxserver».
Примечание
Укажите префикс и суффикс в соответствии с особенностями получения на факс сервере. Возможно, необходимо будет выполнить установку виртуального домена и другие настройки на почтовом сервере в соответствии с определенными условиями работы факс сервера.
-
Нажмите кнопку (НАСТРОЙКА) на панели оператора.
-
Нажмите один раз кнопку , чтобы выбрать [Admin Setup (Админ.настр.)], а затем нажмите кнопку .
-
Введите пароль администратора, а затем нажмите кнопку (ОК).
Заметка
Пароль администратора по умолчанию 999999. Если пароль администратора был изменен, введите новый пароль.
-
Нажмите кнопку для выбора [FaxServer Function (Функция факса-сервера)], а затем нажмите кнопку .
-
Убедитесь, что выбран параметр [Environmental Settings (Настройка среды)], а затем нажмите кнопку .
-
Нажмите кнопку или , чтобы выбрать [PreFix (Префикс)], а затем нажмите кнопку .
-
Введите префикс, используя цифровую клавиатуру, а затем нажмите кнопку .
-
Нажмите кнопку или для выбора [Suffix (Суффикс)], а затем нажмите кнопку (ОК).
-
Укажите суффикс и нажмите кнопку (ОК).
-
Нажимайте кнопку , пока не отобразится основной экран.
активация функции электронной почты в Weintek HMI’s «LĀSMA» Zinātniski tehniskā firma
Видео: активация функции электронной почты в Weintek HMI’s
2021-05-12 12:54:20
Сегодня сложно представить обмен информацией без электронной почты. Быстрый и точный обмен информацией важен для любого эффективного процесса. В частности, это может быть применено к производственным процессам и процессам, связанным с производством.
Современные технологии позволяют получать по электронной почте информацию о состоянии производственного оборудования, ходе процесса и историю данных
Все устройства Weintek HMI поддерживают функцию электронной почты.
В этом видеоуроке Вы увидите:
- Aктивацию функции электронной почты
- Генерацию тестового письма, (для проверки настроек электронной почты)
- Отправку резервных копий данных на электронную почту
- Отправку сигналов тревоги / тревожных сообщений на электронную почту.
Будьте эффективнее, успешнее и быстрее реагируйте на изменения в производственном процессе с Weintek HMI
https://www. lasma.eu/ru/dobavit-k-korzineПродукты
Код: MT8071iE
В наличии: 5
Код: MT8071IP
В наличии: 4
Код: cMT3162X
В наличии: 4
Код: cMTSVR202
В наличии: 4
Код: MT8121XE3
В наличии: 2
youtube.com/embed/CR7Aa-Wkw2s» frameborder=»0″ allowfullscreen=»»/>
Функции электронной почты — Электронная почта — GCSE ICT Revision
Использование электронной почты
Для отправки и получения электронной почты вы должны быть подключены к Интернету.
Пользователи коммутируемого доступа платят поминутно, поэтому для них имеет смысл писать электронные письма перед подключением к Интернету и отключаться после получения новых писем. Это экономит деньги.
Пользователи широкополосного доступа платят ежемесячную подписку по фиксированной ставке, цена, которую они платят, не зависит от того, как долго они находятся в сети.
Отправка электронной почты
- Откройте почтовый клиент, например Microsoft Outlook, или, если вы используете веб-почту, откройте браузер и введите адрес веб-почты, например http: // www.gmail.com и войдите в систему.
- Нажмите «Создать» или «Написать».
- Введите адрес (а) электронной почты получателя (ей) в поле «Кому».
- Напишите подходящую тему в поле «Тема».
- Напишите сообщение в свободном месте под полем «Тема».
- Нажмите «Отправить», чтобы отправить электронное письмо.
По соображениям безопасности пользователям веб-почты следует выйти из системы после завершения работы, поскольку используемый ими компьютер может использоваться другими людьми, которые, если они забудут выйти из системы, смогут получить доступ к своей электронной почте.
Получение электронной почты
Почтовые клиенты и веб-почта периодически проверяют наличие новых писем. Ручную проверку можно выполнить, щелкнув «Отправить и получить» в почтовом клиенте или обновив страницу при использовании веб-почты.
Почтовые клиенты загружают вложения автоматически, но пользователи веб-почты должны выбрать загрузку вложений.
Основы электронной почты: общие функции электронной почты
Урок 2: Общие функции электронной почты
/ ru / email101 / Introduction-to-email / content /
Введение
Независимо от того, какую службу электронной почты вы выберете, вам необходимо научиться взаимодействовать с интерфейсом электронной почты , включая папку входящих сообщений , панель сообщений и панель составления . В зависимости от провайдера электронной почты интерфейсы могут выглядеть и ощущаться по-разному, но все они работают по сути одинаково.
В этом уроке мы поговорим об использовании интерфейса электронной почты для отправки и получения сообщений. Мы также обсудим различные термины , , действия , и особенности , , которые обычно используются при работе с электронной почтой.
Общие сведения об интерфейсе электронной почты
Ниже приведены несколько примеров различных интерфейсов электронной почты и Gmail .Просмотрите изображения ниже, чтобы ознакомиться с различными интерфейсами электронной почты.
Имейте в виду, что эти примеры предоставляют только общий обзор. Вы можете посетить наше руководство по Gmail, чтобы подробно узнать, как использовать почтовое приложение.
Входящие
Ящик входящих сообщений — это место, где вы можете просматривать сообщений электронной почты , которые вы получаете, и управлять ими. Электронные письма перечислены с именем отправителя , темой сообщения и датой получения .
Панель сообщений
Когда вы выбираете электронное письмо в почтовом ящике, оно откроется в Сообщение панели . Отсюда вы можете прочитать сообщение и выбрать , как ответить различными командами.
Панель компоновки
Вы можете нажать кнопку Написать или Создать кнопку в папке «Входящие», чтобы открыть панель создания для создания собственного сообщения электронной почты. Отсюда вам нужно будет ввести адрес электронной почты получателя и тему .У вас также будет возможность загружать файлы (фотографии, документы и т. Д.) В виде вложений , и добавляют к сообщению форматирование .
Панель создания также появится при выборе Ответить или Переслать . Текст из исходного сообщения будет скопирован в панель создания.
Общие условия электронной почты и действия
Все почтовые приложения используют определенные термины и команды, которые вам необходимо понять перед использованием электронной почты.В приведенных ниже примерах используется Gmail Панель составления и Панель сообщений для ознакомления с основными терминами электронной почты, но они все равно будут применимы для Yahoo! и Outlook.
Нажмите кнопки в интерактивном меню ниже, чтобы узнать больше о панели «Составить». .
Нажмите кнопки в интерактивном меню ниже, чтобы узнать больше о панели сообщений .
/ ru / email101 / contacts-and-calendars / content /
Что такое электронная почта? — Определение, функции, типы и многое другое
Определение Электронная почта
Электронная почта (электронная почта) — это способ обмена сообщениями между людьми с помощью электронных устройств. Изобретенный Рэем Томлинсоном в 1960 году, он стал модным к середине 1970 года.
Вы можете отправлять и получать сообщения нескольким получателям или получателям, находящимся в любой точке мира. В дополнение к письменному тексту вы можете включать такие файлы, как документы, изображения, музыку, видеофайлы и т. Д. Простота использования, скорость и низкая стоимость передачи информации означают, что у большинства организаций и частных лиц есть [электронная почта] как основное средство общения. Таким образом, можно было перенести традиционную корреспонденцию, телефон и факс из средств коммуникации в первую очередь.
Источник сообщения электронной почты
В электронном письме достаточно старые данные. Несмотря на то, что все обрабатывалось ручной почтой, с использованием технологий возникла потребность общаться быстрее, не создавая слишком больших затрат. В 1965 году на том же компьютере был создан рисунок Почты. Первое сообщение, отправленное по электронной почте (с одного компьютера на другой), было в 1971 году благодаря сети ARPANET. Позже Рэй Томлинсон изменил видение почты.
Рэй был программистом, которому удалось не только отправить первое письмо в мире, но и использовать символ @ как метод разделения компьютеров пользователя в дополнение к идентификации почтовой компании, в которой он был зарегистрирован.Затем, в 1977 году, электронная почта стала стандартизированной. Итак, в 1962 году Массачусетский технологический институт начал отправлять сообщения через компьютер, имея возможность сохранять каждый файл на своем жестком диске.
Функции электронной почты
Необходимо указать протоколы их использования, например, есть протокол SMTP, его аббревиатура на английском языке означает Simple Mail Transfer Protocol, который позволяет передавать сообщение с исходящего сервера на получатель. Протокол POP, аббревиатура которого на английском языке означает протокол почтового отделения.
Также прочтите: Что такое электронная коммерция? — Определение, функции, преимущества и многое другое
Как создать учетную запись электронной почты
Создание электронной почты не сложно, но вы должны четко понимать, что существуют разные почтовые платформы. Всегда хорошо иметь учетную запись на каждой из них, потому что люди могут различаться на разных платформах; все зависит от его работы, маневренности, преимуществ и качества. Чтобы создать электронное письмо, вы должны перейти на самую желаемую страницу электронной почты; это может быть электронная почта Gmail или Outlook.В правом верхнем углу страницы появятся две опции «Войти» и «Зарегистрироваться». Необходимо выбрать второй вариант.
После завершения первого шага страница создает перенаправление к форме, в которой создается учетная запись, с указанием имени пользователя и пароля. С пользователем необходимо убедиться, что такого же нет ни у кого, поэтому он должен быть как можно более оригинальным. Для пароля необходимо использовать прописные и строчные буквы, знаки препинания, разные символы и даже цифры.
Этот шаг более известен как мой адрес электронной почты; это профиль, полное имя пользователя, год рождения, возраст, страна проживания или текущее местоположение, почтовый индекс и добавление фотографии в профиль. После этого они собирают контакты, которые хотят добавить для отправки электронных писем, хотя сохранять их добавленными на платформы не обязательно.
Самые популярные электронные письма
Несмотря на то, что существуют разные почтовые платформы, пользователи всегда предпочтут одну перед другой; это связано с качеством, которое они предлагают, простотой использования и опытом, которым они обладают.
Gmail
Gmail является одним из самых известных электронных писем во всем мире на протяжении многих лет. Это превосходный почтовый провайдер, у которого в сети не менее одного миллиарда пользователей.
Outlook
Outlook, ранее известный как Hotmail Email, является одним из инструментов Microsoft. Он имеет расширенные возможности хранения, и возможность восстановления этих писем удаляется по ошибке.
Yahoo
Yahoo — еще одна важная платформа электронной почты, хотя это также инструмент веб-поиска. На этой платформе вы можете удалять неиспользуемые сообщения через 90 дней, у нее 350 миллионов пользователей.
AOI
AOI также является одной из самых популярных платформ электронной почты в сети; он имеет неограниченную емкость хранения и известен с 1980 года под названием América Online.Verizon купила его в 2015 году (кстати, вместе с Yahoo), чтобы оптимизировать свои операции и превратить их в две привлекательные почтовые платформы.
iCloud
iCloud — уникальная платформа для устройств Apple. У этой компании есть ряд довольно строгих политик безопасности, и никто не может получить доступ к этой платформе, так как очень важно иметь машину от этой компании.
iCloud — одна из немногих платформ, которые имеют автоматические ответы на электронные письма или сообщения, отправленные через нее.
Также читайте: Что такое ноутбук? — Определение, особенности, плюсы и минусы и многое другое
Подписка на обновления Отказ от подписки на обновления6.Настройка функциональности электронной почты
Вы должны настроить функциональность электронной почты, чтобы приложение без проблем отправляло уведомления по электронной почте или шаблоны писем (которые вы хотите отправить) аффилированным лицам. Все настройки, связанные с электронной почтой, можно установить на панели продавца в разделе Configuration .
Функциональность электронной почты включает:
Учетная запись почты — определяет метод, используемый для отправки электронных писем. Вы можете выбрать функцию mail () по умолчанию или определить свой собственный SMTP-сервер.Здесь вы можете найти полное руководство.
Убедитесь, что учетная запись электронной почты настроена правильно — попробуйте проверить отправку электронных писем.
Без рабочих писем ни партнеры, ни вы не получите подтверждения о регистрации партнеров, новых продажах / потенциальных клиентах и т. Д.
Шаблоны электронной почты — это шаблоны, которые используются, когда система отправляет автоматические электронные письма (уведомления), такие как электронное письмо после регистрации или уведомления о новых продажах. Вам следует просмотреть все шаблоны писем и настроить их, указав свое имя и подпись, или обновить тексты писем.
Если вы хотите использовать локализованные тексты, то все, что находится между ## ##, будет локализовано, если оно будет добавлено в качестве источника перевода на ваши импортированные языки. Поэтому, если вы хотите использовать локализованный текст в своих шаблонах электронной почты, вам необходимо вставить конкретный текст между ## ## — на английском языке (без специальных символов) и создать источник и перевод в языковом файле (щелкните здесь, чтобы просмотреть пример локализация).
Здесь вы можете посмотреть видео:
Уведомления по электронной почте
вы можете настроить, какие уведомления вы хотели бы получать как продавец, и какие уведомления будут включены для аффилированных лиц по умолчанию и какими из них они смогут управлять самостоятельно.
Переходите к следующему шагу настройки — 7. Настройте форму регистрации партнера
Многочисленные варианты использования электронной почты
Несмотря на все способы связи, электронная почта по-прежнему популярна и стала такой же необходимой, как номер телефона или почтовый адрес. Подобно тому, как позвонить кому-то, электронная почта стала стандартным способом общения с ожиданием, что у каждого должен быть адрес электронной почты. Электронная почта начиналась как простой инструмент коммуникации, но теперь используется для гораздо большего.
Электронная почта во многом облегчила мне жизнь. Это позволяет мне:
- Свяжитесь с людьми по всему миру бесплатно (или недорого)
- Общайтесь более чем с одним человеком одновременно
- Взаимодействие с документами (например, высоко ценимый документальный след CYA)
- Оставляйте сообщения в любое время суток, не беспокоя людей
И только когда люди начали использовать его альтернативными способами, все стало становиться беспорядочным, действительно беспорядочным. Вместо того, чтобы искать другую модель, электронная почта продолжала развиваться в соответствии с новыми требованиями и ожиданиями, такими как:
- Совместная работа
- Отправка вложений
- Совместное общение нескольких человек (например,грамм. резьба)
- Возможности поиска
- Автоматизация действий с правилами
- Интеграция календарей, встреч и т. Д.
Почти можно было жить в электронной почте. Некоторые из этих новых требований естественно подходили для этого способа общения, в то время как другие расширяли ограничения и заставляли его казаться действительно неуклюжим. Например, обмен цифровыми фотографиями по электронной почте никогда не был хорошим решением. Вложения имеют большой размер для отправки и могут быстро засорить входящие сообщения, что создает проблемы как для отправителя, так и для получателей.
Сложный «проблемный ребенок»
Электронная почта стала «проблемным ребенком» для профессионалов в области управления информацией. Но во многих отношениях электронная почта получает плохую репутацию. Электронная почта не обязательно является проблемой. Реальная проблема заключается в том, как мы это используем и думаем. Поскольку электронная почта — это способ заменить вербальное общение, в некотором смысле мы хотим, чтобы она имитировала качества, связанные с ведением разговора, такие как способность плавно переключаться между темами, смешивать личные и профессиональные, а также отвечать в данный момент.Хотя электронная почта способна делать те же самые вещи, она этого не делает, и конечным результатом является большой объем плохо созданных электронных писем, что затрудняет управление информацией.
Я посетил ряд семинаров и презентаций о том, как более эффективно управлять электронной почтой. Он почти доходит до того, что к нему относятся как к отдельному объекту управления записями. Меня всегда учили, что переписка не является отдельной серией записей, потому что она всегда о чем-то или является частью процесса, связанного с созданием записей. Однако, когда дело доходит до управления электронной почтой, все это, похоже, разваливается.
Так что же такого особенного в электронной почте? Почему нам так сложно управлять?
- Электронная почта используется не только для переписки.
- Люди привыкли полагаться на электронную почту в самых разных целях.
Благодаря своему многолетнему опыту работы в качестве специалиста по RIM я заметил, что люди используют электронную почту для самых разных целей, помимо ее основного использования для переписки. Хотя эти альтернативные способы использования настолько распространены, что они определяют новую норму использования электронной почты.Люди привыкли полагаться на электронную почту для любого количества функций, помимо общения, включая, помимо прочего, справочную информацию, совместную работу, хранение, управление задачами, мобильный доступ, календари и планирование, и , прикрывающие ваш звуковой сигнал.
Я даже видел множество почтовых ящиков и разговаривал со многими людьми, которые, кажется, считают нормальным либо никогда не очищать корзину электронной почты («на всякий случай»), либо используют корзину в качестве хранилища справочных материалов. Gmail даже предлагает возможность хранить каждое электронное письмо в папке «Вся почта», которая, согласно Google, «является вашим архивом, местом хранения всей почты, которую вы когда-либо отправляли или получали, но не удалили.«Я лично никогда не использовал и не создавал папку .pst, но эта папка« Вся почта »звучит очень похоже.
Следите за обновлениями, чтобы увидеть следующий выпуск, посвященный «Почему электронная почта по-прежнему популярна» и «Внесение фундаментальных изменений».
Подробнее читайте в бесплатной книге AIIM, «Каковы способы использования электронной почты: решение проблем управления электронной почтой».# emailmanagement #EnterpriseContentManagement
Примеры — документация Python 3.9.7
Вот несколько примеров использования пакета email
для чтения, записи,
и отправлять простые сообщения электронной почты, а также более сложные сообщения MIME.
Во-первых, давайте посмотрим, как создать и отправить простое текстовое сообщение (как текстовое содержимое и адреса могут содержать символы Unicode):
# Импортировать smtplib для фактической функции отправки импортировать smtplib # Импортируйте модули электронной почты, которые нам понадобятся из email. message импорт EmailMessage # Откройте простой текстовый файл, имя которого находится в текстовом файле для чтения. с открытым (текстовым файлом) как fp: # Создать текстовое / обычное сообщение msg = EmailMessage () msg.set_content (fp.read ()) # me == адрес электронной почты отправителя # you == адрес электронной почты получателя msg ['Subject'] = f'Содержимое {текстового файла} ' msg ['From'] = я msg ['Кому'] = вам # Отправить сообщение через наш собственный SMTP-сервер.s = smtplib.SMTP ('локальный') s.send_message (сообщение) s.quit ()
Разбор RFC 822 заголовков можно легко выполнить с помощью классов
из модуля парсера
:
# Импортируем модули электронной почты, которые нам понадобятся из email.parser импортировать BytesParser, Parser из email.policy import default # Если заголовки электронного письма находятся в файле, раскомментируйте эти две строки: # с open (messagefile, 'rb') как fp: # заголовки = BytesParser (policy = default) .parse (fp) # Или для разбора заголовков в строке (это необычная операция) используйте: заголовки = Парсер (политика = по умолчанию).parsestr ( 'От: Foo Bar\ n' 'Кому: \ n' 'Тема: Тестовое сообщение \ n' '\ n' 'Тело пойдет сюда \ n') # Теперь к элементам заголовка можно обращаться как к словарю: print ('Кому: {}'. формат (заголовки ['до'])) print ('От: {}'. формат (заголовки ['от'])) print ('Тема: {}'. формат (заголовки ['тема'])) # Вы также можете получить доступ к частям адресов: print ('Имя пользователя получателя: {}'. формат (заголовки ['в']. адреса [0]. имя пользователя)) print ('Имя отправителя: {}'.формат (заголовки ['от']. адреса [0] .display_name))
Вот пример того, как отправить сообщение MIME, содержащее группу семейных изображений, которые могут находиться в каталоге:
# Импортировать smtplib для фактической функции отправки импортировать smtplib # И imghdr, чтобы найти типы наших изображений импорт imghdr # Вот модули пакета электронной почты, которые нам понадобятся из email.message импорт EmailMessage # Создать контейнерное сообщение электронной почты. msg = EmailMessage () msg ['Subject'] = 'Воссоединение нашей семьи' # me == адрес электронной почты отправителя # family = список адресов электронной почты всех получателей msg ['From'] = я msg ['Кому'] = ','.присоединиться (семья) msg.preamble = 'Вы не увидите этого в программе чтения почты с поддержкой MIME. \ n' # Открыть файлы в двоичном режиме. Используйте imghdr, чтобы выяснить # Подтип MIME для каждого конкретного изображения. для файла в png-файлах: с open (file, 'rb') как fp: img_data = fp.read () msg.add_attachment (img_data, maintype = 'изображение', подтип = imghdr.what (Нет, img_data)) # Отправьте электронное письмо через наш собственный SMTP-сервер. с smtplib.SMTP ('localhost') как s: s.send_message (сообщение)
Вот пример того, как отправить все содержимое каталога по электронной почте. сообщение:
#! / Usr / bin / env python3 "" "Отправить содержимое каталога в виде сообщения MIME."" " импорт ОС импортировать smtplib # Для угадывания типа MIME по расширению имени файла импортировать миметипы из argparse import ArgumentParser из email.message импорт EmailMessage из email.policy import SMTP def main (): parser = ArgumentParser (description = "" "\ Отправить содержимое каталога в виде сообщения MIME. Если не указан параметр -o, электронное письмо отправляется путем пересылки на ваш местный адрес. SMTP-сервер, который затем выполняет нормальный процесс доставки. Ваш локальный компьютер должен быть запущен SMTP-сервер."" ") parser.add_argument ('- d', '--directory', help = "" "Отправить содержимое указанного каталога по почте, в противном случае используйте текущий каталог. Только обычный файлы в каталоге отправляются, и мы не переходим к подкаталоги. "" ") parser.add_argument ('- o', '--output', metavar = 'ФАЙЛ', help = "" "Печатать составленное сообщение в ФАЙЛ вместо отправка сообщения на SMTP-сервер."" ") parser.add_argument ('- s', '--sender', required = True, help = 'Значение заголовка From: (обязательно)') parser.add_argument ('- r', '--recipient', required = True, действие = 'добавить', metavar = 'ПОЛУЧАТЕЛЬ', по умолчанию = [], dest = 'получатели', help = 'A To: значение заголовка (хотя бы одно обязательное)') args = parser.parse_args () каталог = args.directory если не каталог: каталог = '.' # Создать сообщение msg = EmailMessage () msg ['Subject'] = f'Содержимое каталога {os.path.abspath (каталог)} ' msg ['Кому'] = ',' .join (args.recipients) msg ['From'] = args.sender msg.preamble = 'Вы не увидите этого в программе чтения почты с поддержкой MIME. \ n' для имени файла в os.listdir (каталог): путь = os.path.join (каталог, имя файла) если не os.path.isfile (путь): Продолжить # Угадайте тип содержимого на основе расширения файла. Кодирование # будет проигнорирован, хотя мы должны проверить такие простые вещи, как # gzip-файлы или сжатые файлы.ctype, encoding = mimetypes.guess_type (путь) если ctype равен None или кодировка не None: # Никакого предположения сделать невозможно, или файл закодирован (сжат), поэтому # использовать общий тип "мешок с битами". ctype = 'приложение / октет-поток' основной тип, подтип = ctype.split ('/', 1) с open (path, 'rb') как fp: msg.add_attachment (fp.read (), maintype = maintype, подтип = подтип, имя_файла = имя_файла) # Теперь отправьте или сохраните сообщение если аргументы.выход: с open (args.output, 'wb') как fp: fp.write (msg.as_bytes (политика = SMTP)) еще: с smtplib.SMTP ('localhost') как s: s.send_message (сообщение) если __name__ == '__main__': главный()
Вот пример того, как распаковать сообщение MIME, подобное тому, выше, в каталог файлов:
#! / Usr / bin / env python3 "" "Распаковать сообщение MIME в каталог файлов." "" импорт ОС импортировать электронную почту импортировать миметипы из email.policy import default из argparse import ArgumentParser def main (): parser = ArgumentParser (description = "" "\ Распакуйте сообщение MIME в каталог файлов."" ") parser.add_argument ('- d', '--directory', required = True, help = "" "Распакуйте сообщение MIME в названный каталог, который будет создан, если он еще не существовать.""") parser.add_argument ('файл сообщений') args = parser.parse_args () с open (args.msgfile, 'rb') как fp: msg = email.message_from_binary_file (fp, policy = default) пытаться: os.mkdir (каталог args.directory) кроме FileExistsError: проходить counter = 1 для части в сообщении.ходить(): # multipart / * - это просто контейнеры если part.get_content_maintype () == 'multipart': Продолжить # Приложения должны действительно дезинфицировать данное имя файла, чтобы # сообщение электронной почты нельзя использовать для перезаписи важных файлов имя_файла = part.get_filename () если не имя файла: ext = mimetypes.guess_extension (part.get_content_type ()) если не доб .: # Используйте универсальное расширение пакета битов ext = '.мусорное ведро filename = f'part- {counter: 03d} {ext} ' счетчик + = 1 с open (os.path.join (args.directory, filename), 'wb') как fp: fp.write (part.get_payload (decode = True)) если __name__ == '__main__': главный()
Вот пример того, как создать сообщение HTML с альтернативной простой текстовая версия. Чтобы было немного интереснее, мы добавили связанный изображение в html-части, и мы сохраняем копию того, что мы собираемся отправить диск, а также отправив его.
#! / Usr / bin / env python3 импортировать smtplib из email.message импорт EmailMessage из email.headerregistry import Address из email.utils import make_msgid # Создать базовое текстовое сообщение. msg = EmailMessage () msg ['Subject'] = "Ayons asperges pour le déjeuner" msg ['From'] = Address ("Pepé Le Pew", "pepe", "example.com") msg ['To'] = (Адрес ("Пенелопа Кошечка", "Пенелопа", "example.com"), Адрес ("Fabrette Pussycat", "fabrette", "example.com")) msg.set_content ("" "\ Салют! Cela ressemble à un превосходный получатель [1] déjeuner.[1] http://www.yummly.com/recipe/Roasted-Asparagus-Epicurious-203718 - Пепе "" ") # Добавить версию в формате html. Это преобразует сообщение в составной / альтернативный # контейнер, с исходным текстовым сообщением в качестве первой части и новым html # сообщение как вторая часть. asparagus_cid = make_msgid () msg.add_alternative ("" "\Салют!
Cela ressemble à un perfect получатель déjeuner.
"" ".format (asparagus_cid = asparagus_cid [1: -1]), subtype = 'html') # обратите внимание, что нам нужно убрать <> с msgid для использования в html. # Теперь добавьте связанное изображение в html-часть. с open ("roasted-asparagus.jpg", 'rb') как img: msg.get_payload () [1] .add_related (img.read (), 'изображение', 'jpeg', cid = asparagus_cid) # Сделайте локальную копию того, что мы собираемся отправить. с открытым ('исходящий.msg ',' wb ') как f: f.write (байты (сообщение)) # Отправить сообщение через локальный SMTP-сервер. с smtplib.SMTP ('localhost') как s: s.send_message (сообщение)
Если бы нам прислали сообщение из последнего примера, вот один из способов, которым мы могли бы обработать:
импорт ОС import sys импортировать временный файл импортировать миметипы импортировать веб-браузер # Импортируйте модули электронной почты, которые нам понадобятся из политики импорта электронной почты из email.parser импортировать BytesParser # Воображаемый модуль, который сделает эту работу безопасной. из воображаемого импорта magic_html_parser # В реальной программе вы получите имя файла из аргументов.с open ('outgoing.msg', 'rb') как fp: msg = BytesParser (policy = policy.default) .parse (FP) # Теперь к элементам заголовка можно обращаться как к словарю, и любой не-ASCII будет # преобразовать в юникод: print ('Кому:', msg ['Кому']) print ('От:', сообщение ['от']) print ('Тема:', msg ['тема']) # Если мы хотим распечатать предварительный просмотр содержимого сообщения, мы можем извлечь все # наименее отформатированная полезная нагрузка и вывести первые три строки. Конечно, # если в сообщении нет простой текстовой части, печатаем первые три строки html #, вероятно, бесполезен, но это всего лишь концептуальный пример.простой = msg.get_body (список предпочтений = ('простой', 'HTML')) Распечатать() print (''. join (simplest.get_content (). splitlines (keepends = True) [: 3])) ans = input ("Просмотреть сообщение полностью?") если ans.lower () [0] == 'n': sys.exit () # Мы можем извлечь самую богатую альтернативу, чтобы отобразить ее: richest = msg.get_body () partfiles = {} если самый богатый ['content-type']. maintype == 'text': если самый богатый ['content-type']. subtype == 'plain': для строки в richest.get_content (). splitlines (): печать (строка) sys.выход() elif richest ['content-type']. subtype == 'html': тело = самый богатый еще: print ("Не знаю, как отображать {}". format (richest.get_content_type ())) sys.exit () elif richest ['content-type']. content_type == 'multipart / related': body = richest.get_body (список предпочтений = ('html')) для части в richest.iter_attachments (): fn = part.get_filename () если fn: extension = os.path.splitext (part.get_filename ()) [1] еще: extension = mimetypes.угадать_расширение (part.get_content_type ()) с tempfile.NamedTemporaryFile (суффикс = extension, delete = False) как f: f.write (part.get_content ()) # снова удалите <>, чтобы перейти от формы электронной почты cid к форме html. partfiles [часть ['content-id'] [1: -1]] = f.name еще: print ("Не знаю, как отображать {}". format (richest.get_content_type ())) sys.exit () с tempfile.NamedTemporaryFile (mode = 'w', delete = False) как f: # Magic_html_parser нужно переписать href = "cid :.... "атрибуты # указывают на имена файлов в partfiles. Он также должен провести безопасную дезинфекцию # HTML. Это можно было бы написать с помощью html.parser. f.write (magic_html_parser (body.get_content (), файлы частей)) webbrowser.open (имя файла) os.remove (имя файла) для fn в partfiles.values (): os.remove (fn) # Конечно, есть много сообщений электронной почты, которые могут нарушить этот простой # ориентированная программа, но она будет обрабатывать самые распространенные из них.
До приглашения вывод из приведенного выше:
Кому: Пенелопа Кошечка <Пенелопа @ example.com>, Fabrette PussycatОт: Пепе Ле Пью Тема: Ayons asperges pour le déjeuner Салют! Cela ressemble à un превосходный получатель [1] déjeuner.
Сноски
Отправка электронных писем с функциями React и Cloud
Вам нужно реализовать контактную форму в своем приложении, но не хочет создавать серверное приложение для отправки электронной почты?
Давайте узнаем, как использовать бессерверный подход с облачными функциями на Firebase и почтовую службу под названием Nodemailer , чтобы упростить эту задачу!
Вы получите код полностью работающей формы React с проверкой , с потрясающим стилем компонентов Material UI и кодом облачной функции , которые вы можете использовать в своих проектах! !
Ознакомьтесь с функциональностью формы React здесь 👉 Откройте живое приложение.
Репозиторий GitHub формы React и облачной функции находится здесь 👉 Открыть репозиторий GitHub
👉 Особая благодарность Себастьяну Галлардо, написавшему облачную функцию для этой статьи.
Оглавление:
Примечание: если вы хотите развернуть облачную функцию в облаке, вам понадобится кредитная карта, хотя с вас не будет взиматься плата, если вы не активируете ее более 2 миллионов раз в месяц.
# Front-end и back-end роли
Роль формы React заключается в сборе информации, которую вводят пользователи, и последующей отправке ее внутреннему коду, который фактически отправляет электронное письмо, которое будет облачной функцией в Это дело.
Но почему мы не можем просто отправить электронное письмо со стороны клиента (прямо из приложения React)? Поскольку учетные данные поставщика электронной почты не могут быть сохранены в приложении React, где пользователи могут получить доступ к его коду, проверив его.
# Приступим!
В этом разделе мы создадим контактную форму с React со следующими функциями:
— компонентов пользовательского интерфейса материала , чтобы она выглядела хорошо.
– Проверка , чтобы обеспечить лучший UX.Форма может быть отправлена только в том случае, если все поля не пусты и адрес электронной почты имеет соответствующую форму.
-A Spinner , чтобы показать, что что-то в пути.
— Snackbars , чтобы проинформировать пользователя о результате действия.
Так выглядит форма:
Итак, приступим и приступим к ее созданию:
- Создать приложение React:
Запустите эти команды на терминале, чтобы создать новое приложение React:
npx create-react-app nodemailer-form
cd nodemailer-form
- Добавить UI материала:
Чтобы установить зависимости UI материала, запустите это:
npm install @ material-ui / core
npm install @ material-ui / lab
Обратите внимание, что react> = 16.8.0 и react-dom> = 16.8.0 — это одноранговые зависимости.
Material UI предоставляет нам готовые компоненты React в стиле, которые мы можем использовать сразу, и они реализуют Material, систему дизайна, созданную Google, чтобы помочь командам создавать высококачественные цифровые возможности для Android, iOS, Flutter и Интернета. .
Другими словами, использование Material UI придаст нашей форме вид, похожий на приложение.
- Добавить шрифт Roboto:
Пользовательский интерфейс Material-UI был разработан с учетом шрифта Roboto.
Один из способов добавления — через CDN:
rel = "stylesheet"
href = "https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap. "
/>
Указанный выше тег
должен быть добавлен внутри тегов
.
Другой способ установить шрифт — через npm. Вы можете узнать, как это сделать, здесь.
- Создайте форму , вставив этот код в
src / App.js
файл:
импорт {useState} из «реагировать»;
импорт './App.css';
импортировать текстовое поле из '@ material-ui / core / TextField';
импортировать сетку из '@ material-ui / core / Grid';
кнопка импорта из '@ material-ui / core / Button';
import Box из '@ material-ui / core / Box';
импортировать CircularProgress из '@ material-ui / core / CircularProgress';
импортировать Snackbar из '@ material-ui / core / Snackbar';
импорт {Alert} из '@ material-ui / lab';
импортировать {makeStyles} из '@ material-ui / core / styles';
const useStyles = makeStyles ((theme) => ({
honeypot: {
display: 'none',
},
}));
функция App () {
const classes = useStyles ();
const [ошибка, setError] = useState (false);
константа [openSnackbar, setOpenSnackbar] = useState (false);
константа [isLoading, setIsLoading] = useState (ложь);
константа [formIsValid, setFormIsValid] = useState (ложь);
const [contactForm, setContactForm] = useState ({
name: {
value: '',
elementConfig: {
required: true,
id: 'standard-basic',
label: ' Ваше имя »,
},
проверка: {
требуется: истина,
ошибка Сообщение:« Пожалуйста, введите свое имя »,
},
действительно: ложь,
размытие: ложь,
} ,
email: {
value: '',
elementConfig: {
required: true,
id: 'standard-basic',
label: 'Your Email',
},
проверка : {
требуется: true,
isEmail: true,
errorMessage: 'Пожалуйста, введите свой адрес электронной почты',
},
valid: false, 900 05
blur: false,
},
message: {
value: '',
elementConfig: {
required: true,
id: 'standard-multiline-static',
label: ' Ваше сообщение ',
multiline: true,
rows: 4,
},
validation: {
required: true,
errorMessage:' Пожалуйста, введите ваше сообщение ',
},
действительно : false,
blur: false,
},
honeypot: {
value: '',
elementConfig: {
className: classes.honeypot,
label:
'Если вы человек, не вводите здесь ничего. Я здесь, чтобы обмануть ботов »,
},
validation: {},
valid: true,
blur: false,
},
});
const formElementsArray = [];
для (введите ключ в contactForm) {
formElementsArray.push ({
id: key,
... contactForm [key],
});
}
const formElements = formElementsArray.map ((element) => {
return (
{... element.elementConfig}
error = {! element.valid && element. blur}
helperText = {
! element.valid && element.blur
? element.validation.errorMessage
: null
}
onChange = {(event) => inputChangedHandler (event, element.id)}
onBlur = {(event) => inputChangedHandler (event, element.id)}
value = {element.value}
>
);
});
const inputChangedHandler = (event, inputIdentifier) => {
const updatedFormElement = {
... contactForm [inputIdentifier],
значение: event.target.value,
допустимо: checkValidity (
event.target.value,
contactForm [inputIdentifier] .validation
),
blur: event.type == 'blur'? true: false,
touch: true,
};
const updatedContactForm = {
... contactForm,
[inputIdentifier]: updatedFormElement,
};
пусть formIsValid = true;
для (пусть inputElementIdentifier в updatedContactForm) {
formIsValid =
updatedContactForm [inputElementIdentifier]._` {|} ~ -] +) * @ (?: [a-z0-9] (?: [a-z0-9 -] * [a-z0-9])? \.) + [a- z0-9] (?: [a-z0-9 -] * [a-z0-9])? /;
isValid = pattern.test (значение) && isValid;
}
возврат isValid;
};
const closeSnackbar = () => {
setOpenSnackbar (false);
};
const submitForm = () => {
if (contactForm.honeypot.value! = '') {
return;
}
setIsLoading (истина);
const fakeCloudFunction = (data) => {
console.журнал (данные);
вернуть новое обещание ((разрешить, отклонить) => {
const error = Math.random ()> 0,5? True: false;
setTimeout (() => {
if (! Error) {
resolve ();
} else {
reject ();
}
}, 1000);
});
};
fakeCloudFunction ({
name: contactForm.name.value,
email: contactForm.email.value,
message: contactForm.message.value,
})
.then (() => {
let originalContactForm = {};
for ( введите ключ в contactForm) {
originalContactForm [key] = {
... contactForm [key],
value: '',
valid: key == 'honeypot'? true: false,
blur: false,
};
}
setContactForm (originalContactForm);
setFormIsValid (false);
setError (false);
setIsLoading (false);
setOpenSnackbar (true);
setOpenSnackbar (true) .catch (() => {
setError (true);
setIsLoading (false);
setOpenSnackbar (true);
});
};
return (
Отправьте нам сообщение
Мы скоро свяжемся с вами.
{ ошибка ? (
open = {openSnackbar} onClose = {closeSnackbar} anchorOrigin = {{vertical: 'top', horizontal: 'center'}} > К сожалению, что-то пошло не так, повторите попытку позже.
): (
open = {openSnackbar} autoHideDuration = {2000} onClose = {closeSnackbar} anchorOrigin = {{vertical: 'top', horizontal: 'center'}} >
)}
) ;
}
приложение для экспорта по умолчанию;
В приведенном выше коде есть фиктивная реализация облачной функции под названием fakeCloudFunction
, использующая функцию с обещанием
и setTimeout ()
, но она будет заменена в следующих разделах реальной облачной функцией, которая фактически отправляет и отправляет по электронной почте данные, которые мы предоставляем в форме.
Если вас ошеломляет длина и сложность компонента App.js
, содержащего форму, загляните в этот курс Academind: React — Полное руководство (включая хуки, React Router, Redux), и тогда вы чувствовать себя как дома, снова читая код. Код формы был скопирован оттуда и объяснен шаг за шагом.
- Протестируйте форму:
Чтобы проверить форму вручную, запустите эту команду для обслуживания приложения:
npm start
, а затем откройте вкладку в браузере и перейдите к localhost: 3000
, чтобы увидеть форму.Попробуйте щелкнуть поля и оставить их пустыми, чтобы проверить, работает ли проверка. Также попробуйте добавить неверный адрес электронной почты и посмотрите, что произойдет.
- Протестируйте приманку:
Поскольку мы не хотим, чтобы наша форма заполнялась и отправлялась ботами, мы создали ловушку в форме, которая является полем формы, которое не отображается для пользователей, но это видят боты, и заполняют его автоматически.
honeypot: {
value: '',
elementConfig: {
className: классы.honeypot,
этикетка: «Если вы человек, не вводите здесь ничего. Я здесь, чтобы обмануть ботов »,
},
проверка: {
},
действительно: правда,
размытие: ложь
}
const submitForm = () => {
if (contactForm.honeypot.value! = '') {
return
}
(...)
}
Тогда мы знаем, что если поле приманки было заполнено, это было сделано ботом, и мы обрабатываем отправку формы другим способом, выполняя ранний возврат и избегая вызова облачной функции.
Итак, чтобы протестировать приманку, просто измените вручную состояние contactForm
в src / App.js
, заменив contactForm.honeypot.value
с ''
на такое число, как 1
или a строка вроде этой: эй, я бот, заполнивший эту форму!
.
После выполнения вышеуказанного изменения вы все равно сможете нажать кнопку Отправить
, но fakeCloudFunction ()
не будет вызываться. Вы можете убедиться в этом, посмотрев на консоль
в инструментах разработчика в браузере.Вы не должны видеть данные, зарегистрированные из формы, которая регистрируется в консоли изнутри fakeCloudFunction ()
.
Отлично! У нас есть форма , уже работающая и проверенная вручную! Давайте теперь заменим fakeCloudFunction ()
на реальную в следующих разделах.
# Платите за то, что используете
Теперь пора сосредоточиться на внутреннем коде, который отправляет электронное письмо.
Обычно для обработки этой задачи создается внутреннее приложение, которое, например, может быть создано с помощью Express, запущенного на Node, которое затем необходимо развернуть на сервере, который представляет собой машину или виртуальную машину, работающую круглосуточно. 7.
Счет за этот сервер по-прежнему должен быть оплачен, даже если внутреннее приложение вообще не используется.
Эта проблема оплаты вещей, которые мы не используем, решается облачными функциями , которые представляют собой внутренний код, работающий в облаке, и мы платим за то, что используем, по схеме с оплатой по мере использования .
Есть еще проблемы, которые решают облачные функции, и вы можете найти их в этом видео Academind Youtube.
# Что такое облачные функции для Firebase?
Облачные функции для Firebase — это бессерверная среда , которая позволяет автоматически запускать внутренний код в ответ на события, инициированные функциями Firebase и запросами HTTPS.
Ваш код JavaScript или TypeScript хранится в облаке Google и работает в управляемой среде. Нет необходимости управлять собственными серверами и масштабировать их.
Подробнее о них читайте в документации.
Если вы хотите узнать больше о serverless , вы можете ознакомиться с этим курсом Academind: AWS Serverless API & Apps — A Complete Introduction, который использует AWS вместо Firebase.
# Время настройки функции облака!
Выполните следующие действия, чтобы написать свою первую облачную функцию:
- Создайте проект firebase:
В консоли Firebase щелкните Добавить проект , затем выберите или введите имя проекта .Вы можете назвать его nodemailer form
, но не стесняйтесь выбирать что-нибудь другое.
Если у вас возникли проблемы с настройкой проекта, прочтите эту документацию.
- Установите интерфейс командной строки Firebase:
Выполните на своем терминале следующее:
npm install -g firebase-tools
Это устанавливает глобально доступную команду firebase. Если команда не работает, вам может потребоваться изменить разрешения npm.
Инициализируйте свой проект:
a) Запустите
firebase login
, чтобы войти через браузер и аутентифицировать инструмент firebase.
b) Инициализируйте проект firebase, запустив:
firebase init
c) Вам будет предложен следующий вопрос:
? Какие функции Firebase CLI вы хотите настроить для этой папки? Нажмите пробел, чтобы выбрать функции, затем нажмите Enter, чтобы подтвердить свой выбор
es. (Нажмите <пробел>, чтобы выбрать, , чтобы переключить все, , чтобы инвертировать выбор)
❯ ◯ База данных: настройка базы данных Firebase Realtime и развертывание правил
◯ Firestore: разверните правила и создайте индексы для Firestore
◯ Функции: настройка и развертывание облачных функций
◯ Хостинг: настройка и развертывание сайтов хостинга Firebase
◯ Хранилище: развертывание правил безопасности облачного хранилища
◯ Эмуляторы: настройка локальных эмуляторов для функций Firebase
◯ Удаленная настройка: получение, развертывание, и конфигурации отката для Remote Config
Давайте выберем этот вариант:
❯ ◯ Функции: настройка и развертывание облачных функций
d) Затем вам будет предложено следующее:
== = Project Setup
Во-первых, давайте свяжем этот каталог проекта с проектом Firebase.Вы можете создать несколько псевдонимов проекта, запустив firebase use --add, но пока мы просто настроим проект по умолчанию.
? Выберите один из вариантов: (Используйте клавиши со стрелками)
❯ Использовать существующий проект
Создать новый проект
Добавить Firebase в существующий проект Google Cloud Platform
Не настраивать проект по умолчанию
Выберите это option:
❯ Использовать существующий проект
e) Нас спросят, какой проект, и выберите проект, который вы создали на шаге 1.
? Выберите проект Firebase по умолчанию для этого каталога:
❯ {your-project-name-xxxxx} ({your-project-name})
(...)
Где зависит от имени вашего проекта
о том, как вы назвали свой проект. xxxxx
символов выбираются Firebase автоматически.
Затем мы увидим это:
=== Настройка функций
В вашем проекте будет создан каталог функций с Node.js
предварительно настроен. Функции могут быть развернуты с помощью firebase deploy.
? На каком языке вы хотите писать облачные функции? (Используйте клавиши со стрелками)
❯ JavaScript
TypeScript
Давайте выберем:
❯ JavaScript
f) Теперь нас спрашивают о ESLint:
? Вы хотите использовать ESLint для обнаружения возможных ошибок и обеспечения соблюдения стиля? (да / нет)
Давайте выберем:
N
, чтобы упростить этот урок.
g) На этом этапе некоторые файлы были созданы внутри новой папки с именем functions
:
✔ Написал functions / package.json
✔ Написал functions / index.js
✔ Написал functions / .gitignore
? Вы хотите установить зависимости с помощью npm сейчас? (Да / нет)
Нас спрашивают об установке всех зависимостей в папку / functions
. Выберем:
y
Если весь процесс настройки прошел хорошо, мы увидим следующее:
i Запись информации о конфигурации в firebase.json ...
i Запись информации о проекте в .firebaserc ...
✔ Инициализация Firebase завершена!
i) Давайте установим еще пару зависимостей, которые нам понадобятся в нашей облачной функции, но сначала обязательно перейдите к / functions
с помощью вашего терминала:
cd functions
Теперь, проверьте, что вы в настоящее время находитесь на your-react-project-name / functions
, посмотрев на терминал. Если вы не уверены, просто проверьте это, запустив:
pwd
Теперь, когда вы уверены, что находитесь в нужном месте, запустите эту команду, чтобы установить nodemailer
и cors
модули:
npm i nodemailer cors
# Давайте наконец напишем облачную функцию
Все облачные функции, которые мы хотим использовать, должны быть экспортированы из functions / index.js
файл. Поскольку у этого проекта есть только одна функция, давайте определим ее и экспортируем в этот файл.
В качестве примечания, когда у вас несколько функций, лучше создать для них разные файлы и импортировать и экспортировать их внутри functions / index.js
.
На электронную почту будет отправлено с использованием Nodemailer , модуля, который мы уже установили, для приложений Node.js, чтобы можно было легко отправлять электронную почту;)
Итак, давайте напишем и экспортируем облачную функцию внутри функции / index.js
:
const functions = require ('firebase-functions');
const nodemailer = require ('nodemailer');
const cors = require ('cors') ({origin: true});
let transporter = nodemailer.createTransport ({
host: 'your host',
port: your - port - number,
secure: true,
auth: {
user: 'your @ email',
пароль: 'ваш пароль.',
},
});
экспорт.sendEmail = functions.https.onRequest ((req, res) => {
console.log (
'из функции sendEmail. Объект запроса:',
JSON.stringify (req.body)
);
cors (req, res, () => {
const email = req.body.data.email;
const name = req.body.data.name;
const message = req.body.data. message;
const mailOptions = {
from: email,
to: `your @ email`,
subject: 'New message from the nodemailer-form app',
text:` $ {name} говорит: $ {message} `,
};
возвратный транспортер.sendMail (mailOptions, (error, info) => {
if (error) {
return res.status (500) .send ({
data: {
status: 500,
message: error.toString) (),
},
});
}
return res.status (200) .send ({
data: {
status: 200,
message: 'sent',
}) ,
});
});
});
});
Мы используем промежуточное ПО cors ()
…но для чего это? Это помогает нам управлять, из каких URL-адресов
запросов могут быть отправлены в нашу облачную функцию. На этапе разработки конфигурация ниже используется для вызова функции с любого URL-адреса:
const cors = require ('cors') ({origin: true});
Здесь можно посмотреть документацию по конфигурации транспортера . Чтобы заполнить обязательные поля, такие как host
, port
и auth
, вам нужно перейти к своему провайдеру электронной почты и найти их.
Документацию по конфигурации сообщения электронной почты можно найти здесь, где вы найдете все доступные параметры.
Поздравляем, ! Вы только что создали свою первую облачную функцию!
# Запуск локального эмулятора
Момент истины настал: пора посмотреть, правильно ли работает наша облачная функция. Сделаем это локально с помощью локального эмулятора ; запустите это в терминале:
эмуляторы firebase: start --only functions
После выполнения приведенной выше команды нам должно быть предложено следующее:
✔ functions [sendEmail]: http функция инициализирована (http : // localhost: 5001 / {имя-вашего-проекта} / {расположение-сервера} / sendEmail).
, где имя-вашего-проекта
и расположение-сервера
зависит от того, как вы настроили проект Firebase на шаге 1 времени настройки облачной функции! раздел.
Чтобы узнать больше о локальном эмуляторе, прочтите эти документы.
#Using Postman
Чтобы протестировать облачную функцию, уже работающую локально на http: // localhost: 5001 / {your-project-name} / {server-location} / sendEmail
, мы откроем Postman, который это программное обеспечение, которое позволяет нам вызывать конечные точки и тестировать их индивидуально.Вы можете скачать это здесь.
Чтобы проверить функцию облака, выполните следующие действия:
Похоже, что функция облака успешно отправила электронное письмо. Теперь перейдите в почтовый ящик вашего почтового провайдера и проверьте, получили ли вы письмо, отправленное с функцией:
Отлично! , вы успешно протестировали свою облачную функцию, работающую локально.
Теперь пора развернуть его в облаке!
Первым шагом к развертыванию облачной функции в облаке является изменение плана, связанного с проектом Firebase, на Blaze, который является платным, как вы планируете , но он имеет щедрые бесплатные квоты, например.g 2M вызовов в месяц для облачных функций, бесплатно! .
Вы можете проверить бесплатные квоты и расценки здесь.
Невозможно автоматически отключить функцию облака, если кто-то злоупотребляет ею, нажимая на нее тысячи раз, но мы можем настроить предупреждение о бюджете, чтобы получать уведомления по электронной почте, когда Google уже взимает определенную сумму. .
# Обновление до плана Blaze
Следуйте этим инструкциям, чтобы изменить план и настроить предупреждение о бюджете:
# Давайте, наконец, развернем его!
Чтобы окончательно развернуть облачную функцию в облаке, выполните следующую команду:
firebase deploy --only functions
Затем мы увидим это:
=== Развертывание на вашем -название проекта'...
i развертывание функций
i functions: обеспечение включения необходимого API cloudfunctions.googleapis.com ...
i functions: обеспечение включения необходимого API cloudbuild.googleapis.com ...
✔ functions: необходимый API cloudbuild.googleapis.com включен
✔ functions: требуется API cloudfunctions.googleapis.com включен
i functions: подготовка каталога функций для загрузки ...
i functions: упакованные функции (21.64 КБ) для загрузки
✔ функции: папка функций успешно загружена
i функции: создание Node.js 12 функция sendEmail ({server-location}) ...
✔ functions [sendEmail ({server-location})] : Успешная операция создания.
URL-адрес функции (sendEmail): https: // {server-location} - {your-project-name-xxxxx} .cloudfunctions.net / sendEmail
✔ Развертывание завершено!
Потрясающе! Теперь мы готовы снова протестировать его с помощью Postman!
Этот тест аналогичен тому, что мы проводили в разделе «Использование почтальона», но вместо этого отправляем запрос по этому URL: https: // {server-location} - {your-project-name-xxxx}.cloudfunctions.net/sendEmail
.
Например, если имя вашего проекта — nodemailer-form-akfhs
, а сервер — us-central1
, то URL-адрес будет: https: //us-central1-nodemailer-form-akfhs.cloudfunctions. сеть / sendEmail
.
Вы должны увидеть успешный ответ на Postman и новое электронное письмо в вашем почтовом ящике, если все прошло хорошо.
Теперь пора вызвать облачную функцию из нашего приложения React и избавиться от fakeCloudFunction
.
Мы могли бы просто сделать HTTP-запрос POST на https: // {server-location} - {your-project-name-xxxxx} .cloudfunctions.net / sendEmail
, но есть способ лучше: мы можем использовать Firebase SDK, который позволяет нам легко взаимодействовать с различными сервисами Firebase, такими как облачные функции, изнутри нашего приложения.
# Регистрация приложения в Firebase
Первым шагом к добавлению SDK является регистрация приложения и копирование firebaseConfig
:
# Добавление Firebase SDK
Мы собираемся добавить Firebase SDK через npm в наш проект .
Откройте терминал в корне вашего проекта и запустите эту команду:
npm i firebase
Эта команда установит модуль firebase внутри папки node_modules
на корневом уровне нашего проекта. , но не внутри functions / node_modules
.
Теперь создайте файл src / firebase.js
(или любое другое имя) и вставьте это:
import firebase from firebase;
const firebaseConfig = {
apiKey: '{your-apiKey}',
authDomain: '{your-authDomain}',
projectId: '{your-projectId}',
storageBucket: '{your- storageBucket} ',
messagingSenderId:' {your-messagingSenderId} ',
appId:' {your-appId} ',
measureId:' {your-measureId} ',
};
firebase.initializeApp (firebaseConfig);
firebase.functions ();
firebase.analytics ();
экспорт firebase по умолчанию;
Давайте узнаем, внесем следующие изменения в src / App.js
:
import firebase from './firebase';
const sendEmail = firebase.functions (). HttpsCallable ('sendEmail');
function App () {
const submitForm = () => {
sendEmail ({
name: contactForm.name.value,
электронная почта: contactForm.email.value,
сообщение: contactForm.message.value
}).
, затем (() => {
(...)
})
.catch (() => {
(...)
})
}
Мы используем метод httpCallable ()
, чтобы напрямую указать на конкретную облачную функцию, просто передав имя облачной функции, которое в данном случае является sendEmail
.
Метод httpCallable ()
можно использовать только тогда, когда облачная функция была определена с помощью функций. Http ()
backend API , что верно в нашем случае (вы можете проверить functions / index.js
, чтобы убедиться, что мы его использовали).
Вот и все! Это все, что нужно для настройки, чтобы наконец вызвать облачную функцию из приложения React.
Давайте теперь проверим.
Давайте обслужим приложение в разработке, запустив:
npm start
и откройте браузер на localhost: 3000
.
Теперь заполните форму и отправьте ее. Снэкбары
должны сообщить вам, был ли запрос успешным или нет. Если вы действительно хотите быть уверенным, откройте инструменты разработчика браузера, перейдите в сеть и проверьте тело ответа на запрос.
Для завершения теста перейдите в свой почтовый ящик и убедитесь, что вы получили письмо.
При желании вы также можете развернуть приложение React в Firebase, выполнив следующие действия.
В качестве последнего шага вы можете изменить настройку промежуточного программного обеспечения cors
облачной функции, добавив в белый список URL
развернутого приложения.
const cors = require ('cors') ({origin: '{your-deployed-app-URL}'});
Таким образом, запросы в браузере могут выполняться только из развернутого приложения, а не из других URL-адресов.
Если вы повторно развернете облачную функцию после изменения конфигурации cors
и запустите приложение локально на localhost: 3000
, вы должны увидеть следующую ошибку на консоли инструментов разработчика вашего браузера при отправке формы:
Доступ для выборки по адресу https: // us-central1-nodemailer-form-8fdf0.cloudfunctions.net/sendEmail 'from origin' http: // localhost: 3000 'был заблокирован политикой CORS: ответ на предварительный запрос не проходит проверку контроля доступа: заголовок' Access-Control-Allow-Origin 'отсутствует запрашиваемый ресурс. Если непрозрачный ответ соответствует вашим потребностям, установите режим запроса на 'no-cors', чтобы получить ресурс с отключенным CORS.
Но если вы заполните форму с URL-адреса развернутого приложения, вы не должны увидеть никаких ошибок, связанных с CORS.