Питхон

Слање е-поште са Питхоном

Слање е-поште са Питхоном
Слање, провера и одговарање на е-поруке дуготрајан је задатак, посебно када то радите за велики број људи или купаца где само треба да промените име, адресу, старост и друге ситнице примаоца. За вас би био врло тежак задатак да напишете програм који би могао да обрађује све врсте ваших личних / пословних е-адреса, али ипак можете аутоматизовати пуно ствари у том погледу што ће вам на крају уштедети пуно времена.

На пример, желите да купцима пошаљете подсетник за преостале рачуне, а све податке повезане са купцима, као што су њихови бројеви телефона, адреса, старост итд., Имате у Екцел листу или у бази података, а уместо да то радите ручно, можете да напишете једноставан програм у Питхону који то аутоматски ради уместо вас. У овом упутству научићемо како функционише протокол е-поште и како можете аутоматизовати поступак како бисте уштедели драгоцено време.

Реч о СМТП-у

Једноставни протокол за пренос поште (СМТП) рачунарски је еквивалент ваше поштанске услуге. То је протокол који ради на апликацијском слоју ТЦП / ИП мреже. То је стандардни протокол за слање и примање е-поште путем Интернета. Процес преноса поште састоји се од сервера е-поште и клијената који међусобно шаљу и примају е-пошту.

На пример, имате ГМАИЛ налог и желите да пошаљете е-пошту свом пријатељу на његов ИАХОО налог. Напишете е-пошту и притиснете сенд, али позадински процес је мало компликован и да бисте разумели овај процес, прво морате да разумете СМТП. Ваш СМТП клијент е-поште прво шаље Здраво (или ЕХЛО) на ГМАИЛ сервер, можете рећи да је ова наредба или заглавље еквивалентно Домаћин заглавље у ХТТП протоколу и користи се за идентификацију сервера помоћу имена домена. Након ХЕЛО или ЕХЛО, клијент се потврђује идентитет сервера помоћу датог корисничког имена и лозинке АУТХ команда. Затим одређује е-адресу пошиљаоца и примаоца, а затим тело поруке и шаље е-пошту на ГМАИЛ сервер. ГМАИЛ сервер ће прво потврдити да ли адреса е-поште примаоца на ИАХОО постоји или не, а затим ће је послати на ИАХОО сервер одакле прималац може да преузме своје е-адресе са.

СМТПЛИБ

СМТПЛИБ је питхон библиотека која се може користити као СМТП клијент баш као и ваш ГМАИЛ, ИАХОО, Тхундербирд или било који други клијент е-поште и може се користити за слање е-поште. Све задатке можемо извршити помоћу СМТПЛИБ клијента, а можемо их обавити и са онима који имају графички кориснички интерфејс.

Долази подразумевано у Питхон, ако га немате, можете га инсталирати помоћу следеће наредбе.

[заштићена е-поштом]: ~ $ пип инсталл смтплиб

ИЛИ у Питхон3

[заштићен е-поштом]: ~ $ пип инсталл смтплиб

Писање прве е-поште помоћу Питхона

У овом упутству користићу ГМАИЛ рачун као пошиљаоца, такође користим Питхон конзолу, тако да ће ми бити лакше објаснити сваки ред кода корак по корак. Да бисмо започели, морамо да омогућимо ГМАИЛ приступ мање сигурним апликацијама.

Дакле, пријавите се на свој ГМАИЛ налог, а затим идите на подешавања налога.

Сада се уверите да је приступ за мање безбедне апликације укључен.

Сада отворите своју питхон конзолу и почните да пишете прву е-пошту користећи Питхон

[заштићена е-поштом]: ~ $ питхон
Питхон 2.7.16 (подразумевано, 7. октобар 2019, 17:36:04)
[ОУУ 8.3.0] на линук2

Упишите „помоћ“, „ауторска права“, „кредити“ или „лиценца“ за више информација.

// увоз СМТП библиотеке
>>> увоз смтплиб
// повезивање са ГМАИЛ сервером са именом домена и бројем порта (Ова поставка се разликује за
сваког добављача е-поште, погледајте доњу табелу)
>>> маилобј = смтплиб.СМТП ('смтп.Гмаил.цом ', 587)
// поздрави сервер
>>> маилобј.ехло ()
(250, смтп.Гмаил.цом на услузи, [103.255.4.246] \ нВЕЛИЧИНА35882577 \ н8БИТМИМЕ \ нСТАРТТЛС \
нЕНХАНЦЕДСТАТУСЦОДЕС \ нПИПЕЛИНИНГ \ нЦХУНКИНГ \ нСМТПУТФ8 ')
// Порт 587 значи да користимо шифровану ТЛС везу, па покрените шифровану ТЛС
комуникација помоћу старттлс (), тако да се наши акредитиви и поруке не њуше
>>> маилобј.старттлс ()
(220, '2.0.0 Спремни за покретање ТЛС-а ')
// пријавите се на свој ГМАИЛ налог користећи е-пошту и лозинку
>>> маилобј.пријава ('[заштићена е-поштом]', 'с3цр3т_п4ссв0рд')
(235, '2.7.0 Прихваћено ')
// наведите е-адресу пошиљаоца и примаоца и садржај е-поште
>>> маилобј.сендмаил ('[емаил протецтед]', '[емаил протецтед]', 'Предмет:
Здраво Свете! \ н Здраво свете! ово је моја прва здрава светска пошта у Питхону ')

// блиска веза са ГМАИЛ сервером
>>> маилобј.одустати()
(221, '2.0.0 затварање везе б6см4519863лфи.72 - гсмтп ')

У горњем примеру програма замените дати садржај својим. Ако нисте корисник ГМАИЛ-а, тада можете да користите сервер е-поште свог добављача. Ево листе имена домена и портова неких уобичајених добављача поште.

Име Име домена сервера Лука
Гмаил смтп.Гмаил.цом 587
Оутлоок / Хотмаил смтп-маил.изгледи.цом 587
ИАХОО Маил смтп.Пошта.иахоо.цом 587
Веризон смтп.веризон.нето 465
Цомцаст смтп.цомцаст.нето 587

Неке речи о ИМАП-у

Дакле, управо смо проучавали да се СМТП користи за слање е-поште, али шта је ИМАП (Интернет Аццесс Мессагинг Протоцол) за? СМТП се не може користити за претраживање и добијање е-поште са сервера, у ту сврху се користи ИМАП или ПОП3 протокол.

ИМАПЦЛИЕНТ, ИМАПЛИБ и ПИЗМАИЛ

У Питхону постоје две главне библиотеке које се могу користити као ИМАП клијент за проналажење, преузимање и брисање е-адреса са сервера поште. Питхон има подразумевану вредност имаплиб библиотека већ друга спољна библиотека имапцлиент је ефикаснији и лак за употребу. У овом упутству ћемо користити имапцлиент да бисте преузели е-пошту са поштанског сервера.

Проблем са имапцлиент је да преузима е-пошту са поштанског сервера у сировом формату. Дакле, требат ћемо пизмаил библиотека као парсер за кориснички испис. Да бисте инсталирали обе библиотеке, откуцајте

[заштићена е-поштом]: ~ $ судо пип инсталл имапцлиент
[заштићена е-поштом]: ~ $ судо пип инсталл пизмаил

Добијање ваше е-поште са поштанског сервера

Сада ћемо научити како да претражујемо и преузимамо е-пошту са поштанског сервера користећи имапцлиент. Користићемо имапцлиент за претрагу и преузимање е-адреса са сервера, а затим ћемо користити пизмаил за рашчлањивање овог сировог садржаја. Омогућава

// увоз библиотеке имапцлиент
>>> увоз имапцлиент
// Повежите се са ГМАИЛ-овим ИМАП сервером
>>> обј = имапцлиент.ИМАПЦлиент ('имап.Гмаил.цом ', ссл = Тачно)
// Пријавите се на свој налог е-поште користећи своје акредитиве
>>> обј.пријава ('[заштићена е-поштом]', 'с3цр4тп4сс')
'[е-пошта заштићена] потврђена (успех)'
// Изаберите фасциклу са порукама за читање и.е ИНБОКС, НАЦРТИ, СЕНТИРАНЕ поште
>>> обј.селецт_фолдер ('ИНБОКС', само за читање = Тачно)
'ПОСТОЈИ': 830, 'ПЕРМАНЕНТФЛАГС': (), 'ХИГХЕСТМОДСЕК': 112999, 'УИДНЕКСТ': 931,
'ЗАСТАВЕ': ('\\ Одговорљено', '\\ Означено', '\\ Нацрт', '\\ Избрисано', '\\ Видено',
'$ НотПхисхинг', '$ Пхисхинг'), 'УИДВАЛИДИТИ': 1, 'САМО ЗА ЧИТАЊЕ': ["], 'РЕЦЕНТ': 0
// Претражите поруке у ИНБОКС-у или примените филтер, приказаће се филтер испод
ви е-маилове примљене након 25. октобра 2019
>>> маил_идс = обј.претрага (['СИНЦЕ', '25 -Оцт-2019 '])
>>> маил_идс
[919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930]
// Списак „маил_идс“ садржи списак ИД-ова е-поште примљених од 25. октобра 2019,
можете да преузмете е-пошту помоћу имапцлиент функције преузимања.
>>> рав_маил = обј.дохвати ([919], ['ТЕЛО []', 'ЗАСТАВЕ]])
// Сад је садржај у променљивој рав_маил у сировом формату, не може се приказати на
екран директно, па би нам требао парсер за рашчлањивање овог садржаја за кориснички излаз
>>> увоз пизмаил
>>> порука = пизмаил.ПизМессаге.фабрика (рав_маил [919] ['ТЕЛО []'])
// Е-пошта се сада рашчлањује и чува у променљивој поруке да би се добио предмет
е-маил, користите функцију гет_субјецт
>>> порука.гет_субјецт ()
у'Обуците своје вештине ове Ноћи вештица са 25% попуста '
// Слично томе, можете видети детаље о пошиљаоцу
>>> порука.гет_аддрессес ('фром')
[(у'Усама Азад ',' [емаил заштићен] ')]
>>> порука.гет_аддрессес ('то')
[(у '[емаил заштићен]', '[емаил заштићен]')]
// Да бисте добили тело е-поруке, откуцајте
>>> порука.тект_парт.гет_паилоад ().декодирање (порука.тект_парт.цхарсет)
у ”Здраво! Уживајте у паушалних 25% на нашим премиум курсевима ”

Ако имате рачун код неког другог добављача услуга е-поште који није ГМАИЛ, можете се пријавити на њихов ИМАП сервер. Ево листе имена ИМАП домена неких познатих добављача поште.

Провидер Име домена за ИМАП сервер
ИАХОО имап.Пошта.иахоо.цом
Хотмаил / Оутлоок имап-маил.изгледи.цом
Веризон долазни.веризон.нето
Цомцаст имап.цомцаст.нето
АТ&Т имап.Пошта.атт.нето

Брисање е-поште са ИМАП сервера

Слично претраживању и преузимању е-поште са сервера, е-пошту можете избрисати и са сервера поште користећи њихов уид. Само следите дате кораке

// Да бисте избрисали е-пошту, морате само за читање да поставите „Фалсе“ да бисте добили приступ за писање на свој
имејлови
>>> обј.селецт_фолдер ('ИНБОКС', само за читање = Нетачно)
>>> маил_идс = обј.претрага (['СИНЦЕ', '25 -Оцт-2019 '])
>>> маил_идс
[919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930]
 
// Наведите уид за е-пошту или листу уида за е-пошту, након покретања испод наредбе,
ваша е-пошта ће нестати са ИНБОКС-а.
>>> обј.делете_мессагес (919)
919: ('\\ Виђено', '\\ Избрисано')
 
// Ова наредба ће трајно избрисати ваше е-адресе са поштанског сервера
>>> обј.екпунге ()
('Успех', [])

хттпс: // тецхтопз.цом / буилд-а-биртхдаи-подсјетник-апликација-у-питхон-он-мац /

Састављање сопственог подсетника за рођендан

У наредним месецима имате рођендане својих пријатеља и желите да им пожелите рођендан. Али имате много посла у својој канцеларији и постоји могућност да заборавите да их пожелите. Дакле, овај задатак се може аутоматски извршити помоћу питхона. Следи код за извршавање овог задатка.

// увоз модула
увоз ре
// ос модул се користи за извршавање задатака оперативног система и.е приступ директоријумима
импорт ос
импорт датетиме
импорт смтплиб
 
// дефинисање функције која ће слати е-пошту
деф сенд_маил (адреса_поште_поште, име):
сендер_маил_аддресс = "[е-пошта заштићена]"
пассвд = "сендерПассвд"
// повезивање са гмаил сервером са именом домена и бројем порта
обј = смтплиб.СМТП ('смтп.Гмаил.цом ', 587)
обј.ехло ()
обј.старттлс ()
// пријављивање на ваш гмаил налог
обј.пријава (сендер_маил_аддресс, пассвд)
// слање поште на 'рециевер_маил_аддресс'.
обј.сендмаил (сендер_маил_аддресс, рециевер_маил_аддресс, "Субјецт: БиртхДаи Висхинг Маил \ н \ н ХаппиБиртхдаи" + име)
// прекид везе
обј.одустати()
// Главни део
// одлазак у директоријум у којем је датотека која садржи податке
ос.цхдир ("патх_то_биртхдаи_дата_филе")
док 1:
// добијање датума и времена садашњег тренутка
данас = датум и време.Датум време.данас()
данас = стр (данас)
// добивање текуће године, месеца, дана, сата, минута и секунде
текућа_ година = данас [0: 4]
цуррент_монтх = данас [5: 7]
цуррент_даи = данас [8:10]
цуррент_хоур = данас [11:13]
цуррент_минуте = данас [14:16]
цуррент_сец = данас [17:19]
// отварање датотеке рођендана у објекту 'биртхдаи_филе' у режиму читања
филе_рођендана = отворен ('датотека_рођендана', 'р')
// чување свих редова датотеке 'биртхдаи_филе' на листи линија
линије = датотека_рођендана.реадлинес ()
// затварање објекта 'биртхдаи_филе'
филе_рођендана.Близу()
// читање сваког ретка помоћу фор петље
за ред у редовима:
// прављење регуларног израза за проналажење датума у ​​'филе_рођендана'
датеЕк = ре.компајлирај (р "\ д 4 - \ д 2 - \ д 2")
финдДате = датеЕк.претрага (линија)
дате = финдДате.група()
// добивање рођендана_месеца и рођендана_дана из датотеке
рођендан_месец = датум [5: 7]
биртхдаи_даи = датум [8:10]
// прављење регуларног израза за проналажење адресе е-поште из именика_рођендана
маилЕк = ре.превести (р "\ в * @ \ в *.цом ")
финдМаил = маилЕк.претрага (линија)
рециевер_маил = финдМаил.група()
// прављење регуларног израза за проналажење имена особе
намеЕк = ре.превести (р "\ в *")
финдНаме = намеЕк.претрага (линија)
наме = финдНаме.група()
// провера да ли долази нечији рођендан или не
ако је цуррент_монтх == биртхдаи_монтх и = цуррент_даи == биртхдаи_даи:
// слање поште тачно у 08:00
ако је цуррент_хоур == '08' и цуррент_минуте == '00' и цуррент_сец == '00':
// позивање функције 'сенд_маил'
сенд_маил (рециевер_маил, име)

Сада правимо „датотеку рођендана“, у коју чувамо имена, адресе е-поште и њихов датум рођења. Ово је једноставна текстуална датотека и изгледа овако.

Објашњење

Прочитаћемо ову датотеку помоћу питхон скрипте и проверити чији рођендан долази и пожелети им. Прво ћемо увести неке модуле. ДАТЕТИМЕ Модул има функције које нам дају тренутни датум и време и још много тога. Али ово ћемо користити само за проналажење тренутног датума и времена. СМТПЛИБ модул се користи за слање поште и то је горе објашњено. РЕ модул има функције које се користе за проналажење регуларног израза из низа.

У овој скрипти дефинишемо функцију 'сенд_маил' која шаље пошту на 'рециевер_маил_аддресс', чије је име 'наме'. Оба аргумента се преносе функцији из главног дела поруке. У главном делу скрипте видећемо како проналазимо „рециевер_маил_аддресс“ и „наме“.

Слање е-поште помоћу смтплиб-а је објашњено горе, па га можете прочитати и о њему овде неће бити речи.

У главном делу идемо у директоријум у коме смо сачували 'биртхдаи_филе' користећи 'ос.цхдир () '. Тада имамо „вхиле петљу“ која је увек тачна, тако да ће непрекидно проверавати рођендан. Сада добијамо тренутни датум и време и чувамо их у променљивој „данас“. Изгледа овако.

2019-11-01 16:19:07.144925

Издвојићемо годину, месец, дан, сат, минуте и секунде користећи индексе ових количина. Након тога отворићемо датотеку рођендана у објекту „датотека рођендана“ у режиму читања, тако да је можемо само читати. Сада ћемо сачувати све редове ове датотеке на листи линија. 'биртхдаи_филе.реадлинес () 'ће сачувати сваки ред на листи' линија '. Након овога затворит ћемо датотеку рођендана помоћу датотеке 'биртхдаи_филе.функција цлосе () '.

Сада ћемо читати сваки ред један по један користећи фор петљу. У сваком реду су само подаци једне особе доступни у датотеци 'биртхдаи_филе', тако да у овој петљи истовремено читамо податке само једне особе.

Након тога издвојићемо датум рођења, адресу е-поште и име особе помоћу РЕ модула. Као што смо записали датум у следећем формату

ГГГГ-ММ-ДД

Тако ћемо направити регуларни израз 'датеЕк' који проналази овај формат у реду.

ре.компајлирај (р ”\ д 4 - \ д 2 - \ д 2”)

Изнад наредбе пронађите низ који има '4 цифре', а затим '-' па '2 цифре', а затим '-' и '2 цифре'. Ово ће нам дати датум рођења особе, па ћемо из овог израза издвојити даи_даи и биртх_монтх.

Слично томе, пронаћи ћемо адресу е-поште помоћу регуларних израза. Након овога упоредићемо рођендан_месец и тренутни_месец и рођендан_дан и тренутни_дан. Ако су ови услови испуњени, рођендан ћемо послати е-поштом помоћу функције 'сенд_маил' тачно у '08: 00 '.

Аутоматско покретање скрипте преко Цроњоба

Сада ћемо се побринути да се ова питхон скрипта покрене сваки пут. Да бисмо то урадили, додаћемо овај задатак у цронтаб. Цронтаб се у линук користи за аутоматско извршавање задатака. Оно што морамо да урадимо је да само додамо задатак у цронтаб. Да бисте то урадили, следите дате кораке.

  1. Отворите цронтаб да бисте додали задатак у свој терминал помоћу следеће наредбе
[емаил заштићен]: ~ $ цронтаб -е
  1. На крају ове датотеке унесите следећу наредбу без #
@ребоот питхон патх_то_тхе_сцрипт

Горе наведене команде ће омогућити вашем систему да покреће питхон скрипту сваки пут када поново покренете систем. На овај начин, ваш систем ће покретати питхон скрипту сваки пут када је ваш систем укључен.

Како инсталирати Цаллигра 3.1.0 Оффице Суите на Убунту 20.04
Канцеларијски пакет Цаллигра је скуп канцеларијских апликација попут програма за обраду текста, прорачунске табеле, презентације итд. Канцеларијски п...
Како инсталирати вино у Убунту ОС и Линук Минт
Вино је део софтвера који додаје слој компатибилности Линук дистрибуцијама. Овај слој компатибилности помаже у покретању Виндовс апликација и игара на...
Инсталирање Нотепад ++-а на Убунту 20.04, 20.10
Нотепад ++ је уређивач текста / изворног кода отвореног кода са отвореним прозором са многим функцијама и подршком за више програмских језика. Значајн...