Habari. Kwa kuwa graphomania yangu inaendelea, niliamua kuongeza makala nyingine. Nakala, kama kawaida, itakuwa na mifano katika C #, lakini mtaalamu wa VB mwenye ujuzi zaidi au chini ataandika upya nambari zote kwa urahisi chini ya VB.NET.
Hebu tuanze, nadhani
Ili kutuma Barua pepe tunahitaji kutumia vitu vitatu. System.Net.Mail.SmtpClient kutuma ujumbe, System.Net.Mail.MailMessage kuwasilisha ujumbe, na System.Net.NetworkCredential kuidhinisha.
Wacha tuunde mteja:
Var client = new SmtpClient("$Mail-Server-Address$", $Mail-Server-Port$);
Rejeleo la mbunifu:
SmtpClient(mwenyeji wa kamba, bandari ya ndani);
Wacha tuunde mfano wa darasa la MailMessage:
Var msg = new MailMessage("kutoka", "kwenda");
Sasa hebu tuweke somo na maudhui ya barua (kwa njia, kila kitu kinaweza kuweka katika mjenzi). Na pia kuingia na nenosiri kwa mteja wa smtp. Kisha tutatuma barua kwa kutumia njia ya Tuma ya kitu cha mteja wetu:
Var mteja = new SmtpClient("smtp.yandex.ru"); var msg = Ujumbe mpya wa Barua("kutoka", "hadi"); msg.Subject = "Ujumbe wangu wa jaribio"; msg.Body = "Halo, rafiki yangu! Hebu fikiria kwamba niliandika tu programu ya ajabu ya kutuma barua hii isiyo na maana kwako mara bilioni tu kwa kubofya mara kadhaa!"; msg.SubjectEncoding = Encoding.UTF8; msg.BodyEncoding = Usimbaji.UTF8; // priority msg.Priority = MailPriority.Juu; // mwili wa barua pepe katika html? msg.IsBodyHtml = uongo; client.Credentials = new NetworkCredential("ingia", "nenosiri"); mteja.Tuma(msg);
Ni hayo tu. Usisahau kujaza taarifa zote zinazohitajika kwa usahihi.
Maoni ()
Urusi02 30
CoolHacker, je, ninaweza kuazima nambari hii kutoka kwako kwa sehemu ya 3 ya kivinjari cha wavuti?
Coolhacker 770 Urusi02 30Asante, nitaitumia kutuma viungo kwa barua pepe
kama katika Firefox
Kutuma ujumbe kwa barua pepe katika Visual Studio 2013 C++
Inaweza kuonekana, kwa nini kuunda tena gurudumu? Kuna programu nyingi ambazo zinaweza kutuma barua pepe: zote mbili zilizolipwa na bila malipo. Katika programu hizi unaweza kutuma barua si kwa moja, lakini kwa wapokeaji wengi mara moja. Walakini, kuongeza wapokeaji bado hufanywa kwa mikono; kuweka anwani zao ni kazi ngumu, haswa ikiwa kuna zaidi ya dazeni yao. Je, ikiwa unahitaji kutuma mamia ya barua pepe mara kwa mara? Na sizungumzii barua taka, lakini ninamaanisha barua pepe za kisheria kabisa?
Katika kesi hii, mpango maalum unaweza kuja kuwaokoa. Nakala hii haitakuwa na programu nzima, lakini programu ndogo ambayo hutuma barua moja kwa anwani moja. Katika kesi hii, idhini hutokea kupitia smpt, yaani, barua haitumwa kutoka mahali fulani haijulikani, lakini kutoka kwa sanduku la barua halisi. Mfano hutumia mail.ru.
Kwa hivyo, hapa kuna maandishi ya programu.
#pamoja na "stdafx.h" #kutumia
Kutoka kwa mstari wa 1 hadi 8, faili za kichwa na nafasi za majina zimeunganishwa. Mstari wa 13 huanzisha seva ya smpt. Yandex na Google hutumia yao wenyewe: smtp.yandex.ru na smtp.google.ru, kwa mtiririko huo. Nambari 25 kwenye mstari huu ni bandari. Ikiwa mtoa huduma wako anazuia bandari hii au huwezi kuunganisha, unaweza kujaribu chaguzi zifuatazo: 465 au 587. Kwenye mstari wa 14 unahitaji kuingiza akaunti yako ya barua pepe (ambayo barua itatumwa) na nenosiri la sanduku hili la barua.
Tunalipa kipaumbele maalum kwa mstari wa 15 - hii ndio ambapo itifaki ya salama ya ssl imeunganishwa. Hii inahitajika kwa Yandex na Barua. Mstari wa 17 huunda ujumbe; saa 18 - anwani ya kurudi; saa 19 - anwani ya mpokeaji; 20 - kichwa cha barua; 21 - ujumbe; mstari wa 22 unatuma. Ikiwa baada ya kuanza programu hakuna makosa yanayotokea, hakuna kinachotokea, basi kila kitu ni sawa - angalia sanduku la barua la mpokeaji.
Ikiwa una angalau ujuzi mdogo wa programu, basi kumaliza wengine itakuwa rahisi sana. Unahitaji kuunda dirisha, fomu, mashamba kadhaa ya pembejeo katika fomu, kulazimisha programu kupakia orodha ya anwani kutoka, kwa mfano, faili ya maandishi au database ya MS Access. Ikiwa hii bado haijawa wazi kwako, basi katika makala zifuatazo nitakuambia kuhusu kila kitu kwa undani zaidi.
Unaweza kuuliza maswali yoyote kuhusu programu katika C++, java, hati katika hati ya java na php, uundaji wa tovuti na mpangilio kwa barua. [barua pepe imelindwa] au piga Skype up777up2. Kwa ada nzuri sana, nitafurahi kukusaidia.
Nyongeza
Mmoja wa wageni wa blogi aliuliza swali: jinsi ya kuunganisha faili katika programu hii? Jibu ni rahisi: unahitaji kuongeza mistari michache ya nambari kwenye programu:
String^ att = L"att.xls"; Kiambatisho^ dan = gcnew Kiambatisho(att, MediaTypeNames::Application::Octet); Ujumbe-> Viambatisho-> Ongeza(dan); Katika mstari wa kwanza tunafafanua faili iliyounganishwa, kwa pili tunafafanua data na ili tusiifasiri (kichwa cha Aina ya Maudhui ya itifaki ya MIME) na ya tatu tunaiongeza kwa barua. Ni hayo tu.
Mara nyingi sana unapaswa kushughulika na kutuma barua pepe kutoka kwa msimbo wa programu. Huna haja ya kuangalia mbali kwa mifano.
Nakala hii ni kidokezo na haifichui chochote kipya, lakini kabla ya kuiandika, nilionekana sawa kwenye Mtandao na nilishangaa sana kwamba karibu kila mahali hutoa suluhisho ambalo halifanyi kazi au limepitwa na wakati, au imeandikwa tu bila kusoma na kuandika.
Jambo la kwanza hupaswi kufanya kulingana na mifano hii ni kutumia System.Web.Mail, ambayo imepitwa na wakati kwa muda mrefu, na kuanzia Visual Studio 2010, huwezi hata kuongeza maktaba ya System.Web bila kujua njia kamili. kwa DLL inayolingana.
Inapendekezwa kutumia maktaba ya System.Net badala yake.
kutumia System.Net; kwa kutumia System.Net.Mail;
Kwa hivyo, jambo rahisi zaidi, ambalo pia ni muhimu zaidi na linalotumiwa mara kwa mara, ni kutuma barua kutoka kwa seva yako ya barua ambayo mteja wa SMTP husanidiwa. Kama unavyoelewa, seva inaweza kuwa ile ambayo programu inaendesha, au ya mbali ambayo una haki ya kutuma barua bila idhini ya ziada.
Mfano wa nambari ya kutuma barua kutoka kwa mashine ya ndani:
Kutumia huduma za barua pepe kama vile Gmail, Yandex, Mail.ru, nk. kila kitu ni sawa, vigezo vilivyo na idhini vinaongezwa.
Seva ya SMTP: smtp.gmail.com
Bandari: 587
kwa kutumia (MailMessage mm = MailMessage mpya("Jina
Seva ya SMTP: smtp.yandex.ru
Bandari: 25
kwa kutumia (MailMessage mm = MailMessage mpya("Jina
Seva ya SMTP: smtp.mail.ru
Bandari: 25
kwa kutumia (MailMessage mm = MailMessage mpya("Jina
Ikiwa kisanduku chako cha barua kwenye huduma ya mail.ru kinaisha kwenye inbox.ru, list.ru au bk.ru, basi anwani ya seva ya SMTP inabadilika ipasavyo (smtp.inbox.ru, smtp.list.ru na smtp.bk.ru).
Kama unavyoona, ili kutumia huduma nyingine yoyote ya barua katika programu zako, unahitaji tu kujua anwani ya seva ya SMTP na bandari, pamoja na sheria za uidhinishaji.
Pia ni muhimu kukumbuka kuwa karibu huduma zote za barua pepe za wahusika wengine huweka mipaka kwa idadi ya barua pepe zilizotumwa kwa muda.
Tags: barua pepe, kutuma barua, smtp
Bw Olympia Oktoba 14, 2013 saa 07:29 jioniKutuma barua pepe kwa utaratibu kwa kutumia huduma mbalimbali
- .WAVU
Mara nyingi sana unapaswa kushughulika na kutuma barua pepe kutoka kwa msimbo wa programu. Huna haja ya kuangalia mbali kwa mifano.
Nakala hii ni kidokezo na haifichui chochote kipya, lakini kabla ya kuiandika, nilionekana sawa kwenye Mtandao na nilishangaa sana kwamba karibu kila mahali hutoa suluhisho ambalo halifanyi kazi au limepitwa na wakati, au imeandikwa tu bila kusoma na kuandika.
Jambo la kwanza hupaswi kufanya kulingana na mifano hii ni kutumia System.Web.Mail, ambayo imepitwa na wakati kwa muda mrefu, na kuanzia Visual Studio 2010, huwezi hata kuongeza maktaba ya System.Web bila kujua njia kamili. kwa DLL inayolingana.
Inapendekezwa kutumia maktaba ya System.Net badala yake.
kutumia System.Net; kwa kutumia System.Net.Mail;
Kwa hivyo, jambo rahisi zaidi, ambalo pia ni muhimu zaidi na linalotumiwa mara kwa mara, ni kutuma barua kutoka kwa seva yako ya barua ambayo mteja wa SMTP husanidiwa. Kama unavyoelewa, seva inaweza kuwa ile ambayo programu inaendesha, au ya mbali ambayo una haki ya kutuma barua bila idhini ya ziada.
Mfano wa nambari ya kutuma barua kutoka kwa mashine ya ndani:
Kutumia huduma za barua pepe kama vile Gmail, Yandex, Mail.ru, nk. kila kitu ni sawa, vigezo vilivyo na idhini vinaongezwa.
Seva ya SMTP: smtp.gmail.com
Bandari: 587
kwa kutumia (MailMessage mm = MailMessage mpya("Jina
Seva ya SMTP: smtp.yandex.ru
Bandari: 25
kwa kutumia (MailMessage mm = MailMessage mpya("Jina
Seva ya SMTP: smtp.mail.ru
Bandari: 25
kwa kutumia (MailMessage mm = MailMessage mpya("Jina
Ikiwa kisanduku chako cha barua kwenye huduma ya mail.ru kinaisha kwenye inbox.ru, list.ru au bk.ru, basi anwani ya seva ya SMTP inabadilika ipasavyo (smtp.inbox.ru, smtp.list.ru na smtp.bk.ru).
Kama unavyoona, ili kutumia huduma nyingine yoyote ya barua katika programu zako, unahitaji tu kujua anwani ya seva ya SMTP na bandari, pamoja na sheria za uidhinishaji.
Pia ni muhimu kukumbuka kuwa karibu huduma zote za barua pepe za wahusika wengine huweka mipaka kwa idadi ya barua pepe zilizotumwa kwa muda.
Tags: barua pepe, kutuma barua, smtp
Moja ya kazi maarufu zaidi kwenye tovuti ni fomu ya maombi au utaratibu, data ambayo hutumwa kwa barua pepe kwa mmiliki wa tovuti. Kama sheria, fomu kama hizo ni rahisi na zina sehemu mbili au tatu za kuingiza data. Jinsi ya kuunda fomu ya kuagiza vile? Hii inahitaji matumizi ya lugha ya alama za HTML na lugha ya programu ya PHP.
Lugha ya alama ya HTML yenyewe ni rahisi; unahitaji tu kujua jinsi na wapi kuweka vitambulisho fulani. Kwa lugha ya programu ya PHP, mambo ni ngumu zaidi.
Kwa mpangaji wa programu, kuunda fomu kama hiyo sio ngumu, lakini kwa mbuni wa mpangilio wa HTML, vitendo vingine vinaweza kuonekana kuwa ngumu.
Unda fomu ya kuwasilisha data katika html
Mstari wa kwanza utakuwa kama ifuatavyo
Sasa hebu tuweke kila kitu pamoja.
Sasa hebu tufanye mashamba katika fomu ya lazima. Tunayo nambari ifuatayo:
Unda faili inayokubali data kutoka kwa fomu ya HTML
Hii itakuwa faili inayoitwa send.php
Katika faili, katika hatua ya kwanza, unahitaji kukubali data kutoka kwa safu ya posta. Ili kufanya hivyo, tunaunda vigezo viwili:
$fio = $_POST["fio"];
$barua pepe = $_POST["barua pepe"];
Majina yanayobadilika katika PHP hutanguliwa na ishara ya $, na semicolon imewekwa mwishoni mwa kila mstari. $_POST ni safu ambayo data kutoka kwa fomu hutumwa. Katika fomu ya html, njia ya kutuma imebainishwa kama method="post". Kwa hivyo, vigezo viwili kutoka kwa fomu ya html vinakubaliwa. Ili kulinda tovuti yako, unahitaji kupitisha vigezo hivi kupitia vichungi kadhaa - kazi za php.
Kazi ya kwanza itabadilisha herufi zote ambazo mtumiaji atajaribu kuongeza kwenye fomu:
Katika kesi hii, vigezo vipya havikuundwa katika php, lakini zilizopo hutumiwa. Kichujio kitafanya nini ni kubadilisha tabia "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Chaguo za kukokotoa za pili husimbua URL ikiwa mtumiaji atajaribu kuiongeza kwenye fomu.
$fio = urldecode($fio);
$barua pepe = urldecode($email);
Kwa kazi ya tatu tutaondoa nafasi kutoka mwanzo na mwisho wa mstari, ikiwa ipo:
$fio = trim($fio);
$barua pepe = trim($email);
Kuna vitendaji vingine vinavyokuruhusu kuchuja vigeu vya php. Matumizi yao yanategemea jinsi unavyojali kwamba mshambuliaji atajaribu kuongeza msimbo wa programu kwenye fomu hii ya uwasilishaji ya barua pepe ya html.
Uthibitishaji wa data iliyohamishwa kutoka fomu ya HTML hadi faili ya PHP
Ili kuangalia ikiwa nambari hii inafanya kazi na ikiwa data inahamishwa, unaweza kuionyesha kwenye skrini kwa kutumia kitendakazi cha mwangwi:
echo $ fio;
mwangwi"
";
echo $ barua pepe;
Mstari wa pili hapa unahitajika kutenganisha pato la vigeu vya php katika mistari tofauti.
Inatuma data iliyopokelewa kutoka kwa fomu ya HTML kwa barua pepe kwa kutumia PHP
Ili kutuma data kwa barua pepe, unahitaji kutumia kazi ya barua pepe katika PHP.
mail("anwani ipi ya kutuma", "somo la barua", "Ujumbe (mwili wa barua)","Kutoka: ambayo barua inatumwa \r\n");
Kwa mfano, unahitaji kutuma data kwa barua pepe ya mmiliki wa tovuti au meneja [barua pepe imelindwa].
Mada ya barua inapaswa kuwa wazi, na ujumbe wa barua unapaswa kuwa na kile ambacho mtumiaji alibainisha katika fomu ya HTML.
barua (" [barua pepe imelindwa]", "Maombi kutoka kwa tovuti", "Jina kamili:".$fio.". Barua pepe: ".$email ,"Kutoka: [barua pepe imelindwa]\r\n");
Inahitajika kuongeza hali ambayo itaangalia ikiwa fomu ilitumwa kwa kutumia PHP kwa anwani maalum ya barua pepe.
ikiwa (barua (" [barua pepe imelindwa]", "Agizo kutoka kwa tovuti", "Jina kamili:".$fio.". Barua pepe: ".$email ,"Kutoka: [barua pepe imelindwa]\r\n"))
{
echo "ujumbe uliotumwa kwa mafanikio";
) mwingine (
}
Kwa hivyo, msimbo wa programu wa faili ya send.php, ambayo itatuma data ya fomu ya HTML kwa barua pepe, itaonekana kama hii:
$fio = $_POST["fio"];
$barua pepe = $_POST["barua pepe"];
$fio = htmlspecialchars($fio);
$barua pepe = htmlspecialchars($email);
$fio = urldecode($fio);
$barua pepe = urldecode($email);
$fio = trim($fio);
$barua pepe = trim($email);
// echo $ fio;
// mwangwi"
";
// echo $ barua pepe;
ikiwa (barua (" [barua pepe imelindwa]", "Maombi kutoka kwa tovuti", "Jina kamili:".$fio.". Barua pepe: ".$email ,"Kutoka: [barua pepe imelindwa]\r\n"))
( echo "ujumbe umetumwa kwa mafanikio";
) mwingine (
echo "makosa yalitokea wakati wa kutuma ujumbe";
}?>
Mistari mitatu ya kuangalia kama data inahamishiwa kwenye faili imetolewa maoni. Ikiwa ni lazima, zinaweza kuondolewa, kwani zilihitajika tu kwa kurekebisha.
Tunaweka msimbo wa HTML na PHP kwa kuwasilisha fomu katika faili moja
Katika maoni ya kifungu hiki, watu wengi huuliza swali la jinsi ya kuhakikisha kuwa fomu ya HTML na nambari ya PHP ya kutuma data kwa barua pepe iko kwenye faili moja, na sio mbili.
Ili kutekeleza kazi hii, unahitaji kuweka msimbo wa HTML wa fomu katika faili ya send.php na kuongeza hali ambayo itaangalia uwepo wa vigezo katika safu ya POST (safu hii inatumwa kutoka kwa fomu). Hiyo ni, ikiwa vigezo katika safu hazipo, basi unahitaji kuonyesha mtumiaji fomu. Vinginevyo, unahitaji kupokea data kutoka kwa safu na kuituma kwa mpokeaji.
Hebu tuone jinsi ya kubadilisha msimbo wa PHP katika faili ya send.php:
//angalia ikiwa vigeuzo vipo kwenye safu ya POST
if(!isset($_POST["fio"]) na !isset($_POST["email"]))(
?> ) mwingine (
//onyesha fomu
$fio = $_POST["fio"];
$barua pepe = $_POST["barua pepe"];
$fio = htmlspecialchars($fio);
$barua pepe = htmlspecialchars($email);
$fio = urldecode($fio);
$barua pepe = urldecode($email);
$fio = trim($fio);
$barua pepe = trim($email);
ikiwa (barua (" [barua pepe imelindwa]", "Maombi kutoka kwa tovuti", "Jina kamili:".$fio.". Barua pepe: ".$email ,"Kutoka: [barua pepe imelindwa]\r\n"))(
echo "Ujumbe umetumwa kwa mafanikio";
) mwingine (
echo "Makosa yalitokea wakati wa kutuma ujumbe";
}
}
?>
Tunaangalia kuwepo kwa kutofautiana katika safu ya POST na kazi ya isset() PHP. Alama ya mshangao kabla ya chaguo hili la kukokotoa katika hali ina maana ya kukanusha. Hiyo ni, ikiwa kutofautiana haipo, basi tunahitaji kuonyesha fomu yetu. Ikiwa singeweka alama ya mshangao, hali hiyo ingemaanisha "ikiwa ipo, basi onyesha fomu." Na hii sio sawa katika kesi yetu. Kwa kawaida, unaweza kuipa jina tena kwa index.php. Ikiwa utabadilisha jina la faili, usisahau kubadilisha jina la faili kwenye mstari