Skip to content
SilverPC Blog

SilverPC Blog

Tech

Diploma nélkül a csúcsra? A Big Data Scientist karrier útja papírok nélkül
  • Tech

Diploma nélkül a csúcsra? A Big Data Scientist karrier útja papírok nélkül

2025.09.03.
Programozás gyerekeknek: Melyik programozási nyelvvel vezérelhet hardvert egy 10 éves zseni?
  • Tech

Programozás gyerekeknek: Melyik programozási nyelvvel vezérelhet hardvert egy 10 éves zseni?

2025.09.03.
Hogy soha ne felejtsd el, merre jártál: a legjobb GPS koordináta rögzítő appok és eszközök
  • Tech

Hogy soha ne felejtsd el, merre jártál: a legjobb GPS koordináta rögzítő appok és eszközök

2025.09.02.
Több van bennük, mint gondolnád: a polaroid fotók, mint a lakás legmenőbb dekorációi
  • Tech

Több van bennük, mint gondolnád: a polaroid fotók, mint a lakás legmenőbb dekorációi

2025.09.02.
Tű a szénakazalban? Egy cím GPS pozíciójának lekérdezése PC-n másodpercek alatt
  • Tech

Tű a szénakazalban? Egy cím GPS pozíciójának lekérdezése PC-n másodpercek alatt

2025.09.02.
Levegőzz anélkül, hogy az ablakon szöktetnéd a meleget: a folyamatos szellőztetés titka
  • Tech

Levegőzz anélkül, hogy az ablakon szöktetnéd a meleget: a folyamatos szellőztetés titka

2025.09.02.

Express Posts List

C programozási anomáliák: Mi történik, ha számmal töltöd fel a char tömböt fscanf segítségével?
  • Szoftver

C programozási anomáliák: Mi történik, ha számmal töltöd fel a char tömböt fscanf segítségével?

2025.09.03.
Amikor először merülünk el a C programozás mélységeiben, számtalan logikai kihívással és szintaktikai buktatóval találkozunk. A nyelv...
Bővebben Read more about C programozási anomáliák: Mi történik, ha számmal töltöd fel a char tömböt fscanf segítségével?
Veszélyes játék a memóriával: Miért életbevágó a malloc() visszatérési értékének ellenőrzése?
  • Szoftver

Veszélyes játék a memóriával: Miért életbevágó a malloc() visszatérési értékének ellenőrzése?

2025.09.03.
A leghatékonyabb C# Mátrix algoritmusok gyűjteménye
  • Szoftver

A leghatékonyabb C# Mátrix algoritmusok gyűjteménye

2025.09.03.
C++ Mátrix feltöltés elegánsan: Így csináld segédváltozó nélkül!
  • Szoftver

C++ Mátrix feltöltés elegánsan: Így csináld segédváltozó nélkül!

2025.09.03.
Mátrixok szorzása egyszerűen: Az algoritmus, amit meg kell értened
  • Szoftver

Mátrixok szorzása egyszerűen: Az algoritmus, amit meg kell értened

2025.09.03.
Primary Menu
  • Főoldal
  • Hírek
  • Tech
  • Hardver
  • Szoftver
  • Mobil
  • Gamer
  • Játék
  • Web
  • Tudomány
  • Egyéb
  • Szoftver

Levélküldés C#-pal gmail-ra: A lépésről-lépésre útmutató, amire szükséged van

2025.09.01.

A digitális világban az automatizált értesítések és kommunikáció elengedhetetlen. Legyen szó felhasználói regisztrációk visszaigazolásáról, rendszerhibákról szóló riasztásokról, heti riportokról vagy éppen egy egyszerű kapcsolati űrlap üzenetének továbbításáról, az e-mail kulcsfontosságú szerepet tölt be. Ha Ön C# fejlesztő, és azon gondolkodik, hogyan integrálhatja ezt a funkciót saját alkalmazásaiba, ráadásul megbízhatóan és biztonságosan, akkor jó helyen jár. Ez az átfogó lépésről-lépésre útmutató végigvezeti Önt a Gmail SMTP szerverének használatán keresztül történő levélküldés teljes folyamatán, a kezdeti beállításoktól a komplexebb megoldásokig.

Készüljön fel, hogy mélyebben beleássuk magunkat a C# és a Gmail interakciójába, és fedezzük fel, hogyan hozhatunk létre robusztus e-mail küldő funkcionalitást programjainkban!

Előkészületek és Szükséges Eszközök

Mielőtt belevágnánk a kódolásba, győződjünk meg róla, hogy minden szükséges eszközzel rendelkezünk. Ezek az alapvető feltételek biztosítják a zökkenőmentes haladást:

  1. Fejlesztőkörnyezet: Szüksége lesz egy .NET fejlesztőkörnyezetre, mint például a Visual Studio. Ez biztosítja az összes C# projekthez szükséges eszközt és könyvtárat.
  2. C# alapismeretek: Bár az útmutató részletes, alapvető programozási és C# szintaktikai ismeretek előnyt jelentenek.
  3. Aktív Gmail fiók: Egy működő Gmail fiókra lesz szükségünk, amelyen keresztül az üzeneteket küldeni fogjuk. Fontos, hogy ehhez a fiókhoz hozzáférjen, és képes legyen módosítani annak biztonsági beállításait.
  4. Internetkapcsolat: Az e-mailek elküldéséhez természetesen stabil internetkapcsolat szükséges.

A legfontosabb előkészület azonban a Gmail fiókunk megfelelő konfigurálása, ami nélkülözhetetlen a programozott levélküldéshez.

A Gmail Biztonsági Beállításai: Az Alkalmazásjelszó Létrehozása 🔒

Ez a pont a legkritikusabb lépés, és sokak számára okozhat fejtörést. A Google folyamatosan szigorítja a fiókhozzáférési szabályokat a felhasználók védelme érdekében. Régebben létezett a „kevésbé biztonságos alkalmazások hozzáférése” opció, amelyet engedélyezve a programok közvetlenül, a hagyományos jelszóval tudtak hozzáférni a fiókhoz. Azonban ez a lehetőség 2022 májusában végleg megszűnt!

Ma már az alkalmazásjelszó (App Password) használata az egyetlen biztonságos és támogatott módja annak, hogy programjaink külső hozzáférést kapjanak a Gmail fiókhoz. Ennek feltétele a kétlépcsős azonosítás (2FA) aktiválása a Gmail fiókján.

Az Alkalmazásjelszó Létrehozásának Lépései:

  1. Engedélyezze a kétlépcsős azonosítást: Ha még nincs bekapcsolva, navigáljon a Google fiókja biztonsági beállításaihoz, és aktiválja a kétlépcsős azonosítást. Ez egy alapvető biztonsági intézkedés, amit amúgy is érdemes beállítani minden online fiókján.
  2. Navigáljon az alkalmazásjelszavakhoz: Miután a 2FA aktív, ugyanezen a biztonsági oldalon görgessen le az „Alkalmazásjelszavak” (App passwords) szakaszhoz.
  3. Generáljon új jelszót: Kattintson az „Alkalmazásjelszavak” opcióra, majd válassza ki az alkalmazást (pl. „Egyéb” vagy „Egyéni név” és adja meg pl. „C# Email Küldő”) és az eszközt (pl. „Windows számítógép”). Végül kattintson a „Generálás” gombra.
  4. Mentse el a jelszót: A Google ekkor generál egy 16 karakterből álló, szóközökkel tagolt jelszót. Ezt a jelszót jegyezze fel vagy másolja ki azonnal! Ez az egyetlen alkalom, amikor látni fogja. Ez a jelszó lesz az, amit a C# kódjában fog használni a Gmail fiók hitelesítéséhez, és NEM a szokásos Gmail jelszava.

Ne feledje, ez az alkalmazásjelszó rendkívül érzékeny adat, kezelje olyan gondossággal, mint bármely más hitelesítő adatot.

A C# Alapjai: Az SmtpClient és MailMessage Osztályok 📧

A C# a .NET keretrendszer részeként kiváló beépített osztályokat kínál az e-mail kezelésre, amelyek a `System.Net.Mail` névtérben találhatók. Két kulcsfontosságú osztályt fogunk használni:

  • SmtpClient: Ez az osztály felelős az SMTP (Simple Mail Transfer Protocol) szerverrel való kommunikációért. Segítségével konfigurálhatjuk a szerver adatait (cím, port, biztonsági beállítások) és elküldhetjük az e-maileket.
  • MailMessage: Ez az osztály reprezentálja magát az e-mailt. Itt definiálhatjuk a feladót, a címzetteket (To, CC, BCC), a tárgyat, az üzenet tartalmát és a mellékleteket.

Ezen osztályok használata rendkívül intuitív és rugalmas, lehetővé téve a legkülönfélébb e-mail küldési forgatókönyvek megvalósítását.

  MTA szerver nem jelenik meg a listában – okok és megoldások

Lépésről-lépésre: E-mail Küldése C#-ból Gmail-re 🚀

Most, hogy az előkészületekkel végeztünk és ismerjük az alapvető osztályokat, lássuk a gyakorlati megvalósítást egy egyszerű konzolalkalmazás példáján keresztül.

1. Projekt Létrehozása

Nyissa meg a Visual Studio-t, és hozzon létre egy új „Konzolalkalmazás” (.NET Core vagy .NET Framework, attól függően, hogy melyikkel dolgozik) projektet. Nevezze el tetszőlegesen, például „EmailSenderApp”.

2. Szükséges Névterek Importálása

A Program.cs fájl elején adja hozzá a következő using direktívákat:

using System;
using System.Net;
using System.Net.Mail;
using System.Threading.Tasks; // Aszinkron küldéshez

3. A Kód Megírása

Helyezze el a következő kódot a Main metódusba (vagy egy külön metódusba, amit a Main-ből hív):

class Program
{
    static async Task Main(string[] args)
    {
        // 📧 A feladó és címzett adatai
        string feladoEmail = "[email protected]"; // Ide írja be a Gmail címét
        string feladoJelszo = "itt_az_alkalmazas_jelszo"; // Ide írja be a generált alkalmazásjelszót
        string cimzettEmail = "[email protected]"; // Ide írja be a címzett címét
        string targy = "Teszt email C# alkalmazásból";
        string uzenetTorzs = "<h2>Szia, <strong>Világ!</strong></h2><p>Ez egy teszt email, amit C# kóddal küldtem Gmail-en keresztül.</p><p>Remélem, sikeresen megérkezett!</p>";

        try
        {
            // ⚙️ SmtpClient beállítások a Gmail szerverhez
            using (SmtpClient smtpClient = new SmtpClient("smtp.gmail.com"))
            {
                smtpClient.Port = 587; // Az alapértelmezett SMTP port TLS/STARTTLS-hez
                smtpClient.EnableSsl = true; // SSL titkosítás engedélyezése
                smtpClient.UseDefaultCredentials = false; // Ne használja az alapértelmezett Windows hitelesítést
                smtpClient.Credentials = new NetworkCredential(feladoEmail, feladoJelszo); // Gmail fiók hitelesítése

                // 📧 MailMessage objektum létrehozása
                using (MailMessage mailMessage = new MailMessage())
                {
                    mailMessage.From = new MailAddress(feladoEmail, "Saját alkalmazás"); // Feladó (email cím, megjelenő név)
                    mailMessage.To.Add(cimzettEmail); // Címzett hozzáadása
                    // mailMessage.CC.Add("[email protected]"); // Opcionálisan: másolat
                    // mailMessage.Bcc.Add("[email protected]"); // Opcionálisan: titkos másolat
                    mailMessage.Subject = targy; // Tárgy
                    mailMessage.IsBodyHtml = true; // A törzs HTML tartalomként értelmezése
                    mailMessage.Body = uzenetTorzs; // Az üzenet törzse

                    // 🚀 Az e-mail elküldése aszinkron módon
                    await smtpClient.SendMailAsync(mailMessage);

                    Console.WriteLine("Az e-mail sikeresen elküldve!");
                }
            }
        }
        catch (SmtpException ex)
        {
            Console.WriteLine($"SMTP hiba történt: {ex.StatusCode} - {ex.Message}");
            Console.WriteLine($"Részletek: {ex.InnerException?.Message}");
            // További hibakezelés, naplózás
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Általános hiba történt: {ex.Message}");
            Console.WriteLine($"Részletek: {ex.InnerException?.Message}");
            // Általános hibakezelés, naplózás
        }

        Console.WriteLine("Nyomjon meg egy gombot a kilépéshez...");
        Console.ReadKey();
    }
}

A Kód Magyarázata Lépésről-Lépésre:

  1. Feladó és Címzett Adatok: A feladoEmail és feladoJelszo változókban kell megadni a Gmail fiók adatait és az alkalmazásjelszót. A cimzettEmail a címzett e-mail címét tárolja.
  2. SmtpClient Inicializálása: Létrehozunk egy új SmtpClient példányt, megadva a Gmail SMTP szerverének címét („smtp.gmail.com”).
  3. Port és SSL: A Gmail általában az 587-es portot használja TLS/STARTTLS titkosítással, ezért beállítjuk a Port-ot 587-re és az EnableSsl-t true-ra.
  4. Hitelesítés: Fontos, hogy a UseDefaultCredentials-t false-ra állítsuk, és explicit módon adjuk meg a NetworkCredential objektummal a feladó e-mail címét és az alkalmazásjelszót.
  5. MailMessage Létrehozása: Ezután létrehozunk egy MailMessage objektumot. Itt adjuk meg a From (feladó), To (címzett), Subject (tárgy) és Body (üzenet törzse) tulajdonságokat.
  6. HTML Tartalom: Az IsBodyHtml = true; beállítás lehetővé teszi, hogy az üzenet törzsét HTML formátumban adjuk meg, így formázott e-maileket küldhetünk.
  7. Küldés: Az smtpClient.SendMailAsync(mailMessage); metódus küldi el az e-mailt. Az async és await kulcsszavak használata lehetővé teszi az aszinkron küldést, ami különösen hasznos GUI alkalmazásokban vagy szerveroldali szolgáltatásokban, ahol nem szeretnénk blokkolni a fő szálat.
  8. Hibakezelés (try-catch): A try-catch blokk elengedhetetlen a robusztus alkalmazásokhoz. Elkapja a lehetséges SmtpException (SMTP szerver hibák) vagy általános Exception (egyéb hibák) típusú kivételeket, és hibaüzenetet ír ki a konzolra. Ez a hibakezelés kritikus a problémák diagnosztizálásában.

Miután futtatta a programot, ellenőrizze a címzett beérkező leveleit. Ha mindent helyesen állított be, az üzenetnek meg kell érkeznie!

  Webkamera felvétel: ingyenes programok események rögzítéséhez

Haladó Funkciók és Testreszabás ⚙️

Az alapvető levélküldésen túl a MailMessage osztály számos további lehetőséget kínál az e-mailek testreszabására:

Mellékletek Hozzáadása

A MailMessage.Attachments gyűjteménybe egyszerűen hozzáadhatunk mellékleteket. Ügyeljen rá, hogy a fájl létezzen a megadott útvonalon, és legyen olvasási jogosultsága hozzá az alkalmazásnak.

// Képzeletbeli fájl mellékletként
string mellékletFájlÚtvonal = "C:\path\to\your\document.pdf";
if (System.IO.File.Exists(mellékletFájlÚtvonal))
{
    Attachment melléklet = new Attachment(mellékletFájlÚtvonal, System.Net.Mime.MediaTypeNames.Application.Pdf);
    mailMessage.Attachments.Add(melléklet);
    Console.WriteLine($"Melléklet hozzáadva: {mellékletFájlÚtvonal}");
}
else
{
    Console.WriteLine($"Figyelmeztetés: A melléklet fájl nem található: {mellékletFájlÚtvonal}");
}

Több Címzett (CC, BCC)

Könnyedén küldhet másolatot (CC) vagy titkos másolatot (BCC) is:

mailMessage.CC.Add("[email protected]");
mailMessage.CC.Add("[email protected]");
mailMessage.Bcc.Add("[email protected]");

Kódolás Beállítása

Ha speciális karaktereket vagy nem angol nyelveket használ, érdemes explicit módon beállítani a kódolást a megfelelő megjelenítés érdekében:

mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
mailMessage.SubjectEncoding = System.Text.Encoding.UTF8;

Gyakorlati Tippek és Bevált Módszerek

Ahhoz, hogy az e-mail küldés programból ne csak működőképes, hanem robusztus, biztonságos és karbantartható legyen, érdemes néhány bevált gyakorlatot követni:

  • Hitelesítő Adatok Biztonságos Tárolása: Soha ne hardcode-olja a jelszavakat és az e-mail címeket a kódban, mint a fenti példában! Ez egy tesztpélda, de éles környezetben használjon appsettings.json fájlt, környezeti változókat, vagy még jobb, egy biztonságos titokkezelő rendszert (pl. Azure Key Vault, HashiCorp Vault).
  • Részletes Naplózás: Implementáljon alapos naplózást (logging). Rögzítse a sikeres küldéseket, a hibákat, a hibaüzeneteket és a releváns adatokat. Ez felbecsülhetetlen értékű a problémák diagnosztizálásában és az alkalmazás viselkedésének monitorozásában.
  • Robusztus Hibakezelés: Ne csak egy egyszerű Console.WriteLine()-nal kezelje a hibákat. Készüljön fel hálózati problémákra, időtúllépésekre, sikertelen hitelesítésre vagy a Gmail szerver egyéb hibáira. Fontolja meg az újrapróbálkozási logikát (retry logic) átmeneti hálózati hibák esetén.
  • Korlátozások Figyelembe Vétele: A Gmail napi levélküldési limitet szab (általában 500 üzenet egy 24 órás időszak alatt). Ha nagyobb mennyiségű e-mailt szeretne küldeni, fontolja meg egy dedikált tranzakciós e-mail szolgáltatás (pl. SendGrid, Mailgun) használatát, vagy implementáljon egy üzenetsor alapú rendszert a küldés lassítására (throttling).
  • Aszinkron Működés Előnyben Részesítése: Különösen felhasználói felülettel rendelkező alkalmazásokban, vagy szerveroldali szolgáltatásoknál használja a SendMailAsync metódust az aszinkron küldéshez, hogy elkerülje a felhasználói felület lefagyását vagy a szálak blokkolását.
  • Tesztelés: Mindig tesztelje alaposan az e-mail küldő funkcionalitást különböző forgatókönyvekkel: érvényes/érvénytelen címek, mellékletekkel/mellékletek nélkül, HTML/sima szöveg tartalommal.

Személyes Vélemény és Tapasztalat

Emlékszem, évekkel ezelőtt még elegendő volt bekapcsolni a „kevésbé biztonságos alkalmazások hozzáférését” a Gmail beállításaiban, és máris működött a programozott levélküldés. Ez a funkció azonban 2022 májusában végleg megszűnt. Számos régebbi alkalmazásunk leállt emiatt, amíg nem frissítettük őket az alkalmazásjelszó használatára. Ez egy ékes példája annak, hogy a szoftverfejlesztés során mennyire fontos figyelemmel kísérni a külső szolgáltatások API-jainak és biztonsági protokolljainak változásait. A Google intézkedései, bár eleinte fejtörést okozhattak, egyértelműen a felhasználói adatok fokozottabb védelmét szolgálják, és hosszú távon a mi alkalmazásaink biztonságát is növelik. Mindig érdemes naprakésznek lenni a szolgáltatók irányelveivel.

Összefoglalás és Búcsúzó Gondolatok

Gratulálunk! Most már rendelkezik az összes szükséges tudással és eszközzel ahhoz, hogy e-mail küldést C#-pal Gmail-re valósítson meg saját alkalmazásaiban. Láthattuk, hogy a .NET keretrendszer mennyire kényelmes és hatékony megoldást kínál erre a feladatra, miközben a Gmail SMTP szerverének használata megbízható alapot biztosít.

A legfontosabb tanulság talán az, hogy a technológiai fejlődés és a biztonsági sztenderdek változása folyamatos. Az alkalmazásjelszó használatának megértése és beállítása kulcsfontosságú volt ebben az útmutatóban, és ez egyben emlékeztet is minket a programozás dinamikus természetére.

Ne habozzon kísérletezni a bemutatott kóddal, szabja testre igényeinek megfelelően, és építsen be még több intelligens funkcionalitást alkalmazásaiba. Az automatizált e-mail kommunikációval jelentősen növelheti szoftvereinek értékét és felhasználói élményét. Sok sikert a fejlesztéshez! 🚀

App jelszó Gmail C# email küldés C# levélküldés C# programozás email email küldés programból Gmail SMTP lépésről lépésre útmutató SmtpClient
Megosztás Facebookon Megosztás X-en Megosztás Messengeren Megosztás WhatsApp-on Megosztás Viberen

Vélemény, hozzászólás? Válasz megszakítása

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Kapcsolódnak

Sikertelen hitelesítés C#-ban e-mail küldésnél? Gyakori hibák és a megoldásuk
  • Szoftver

Sikertelen hitelesítés C#-ban e-mail küldésnél? Gyakori hibák és a megoldásuk

2025.09.02.
Így programozz le egy [ 4 x 3 ]-as mátrixot: Útmutató lépésről lépésre!
  • Szoftver

Így programozz le egy [ 4 x 3 ]-as mátrixot: Útmutató lépésről lépésre!

2025.09.02.
Így oldd meg ezt a feladatot Pascalban: Lépésről-lépésre útmutató
  • Szoftver

Így oldd meg ezt a feladatot Pascalban: Lépésről-lépésre útmutató

2025.08.31.
Komplett Blender oktatóanyagot keresel az alapoktól? Itt a lépésről lépésre útmutató, amit eddig hiába kerestél!
  • Szoftver

Komplett Blender oktatóanyagot keresel az alapoktól? Itt a lépésről lépésre útmutató, amit eddig hiába kerestél!

2025.08.19.
AVI-ból DVD: Lépésről lépésre útmutató, hogy az AVI formátumú film tökéletesen fusson a lejátszón
  • Szoftver

AVI-ból DVD: Lépésről lépésre útmutató, hogy az AVI formátumú film tökéletesen fusson a lejátszón

2025.08.05.
Windows 10 telepítése: lépésről lépésre útmutató
  • Szoftver

Windows 10 telepítése: lépésről lépésre útmutató

2025.07.15.

Olvastad már?

C programozási anomáliák: Mi történik, ha számmal töltöd fel a char tömböt fscanf segítségével?
  • Szoftver

C programozási anomáliák: Mi történik, ha számmal töltöd fel a char tömböt fscanf segítségével?

2025.09.03.
Amikor először merülünk el a C programozás mélységeiben, számtalan logikai kihívással és szintaktikai buktatóval találkozunk. A nyelv...
Bővebben Read more about C programozási anomáliák: Mi történik, ha számmal töltöd fel a char tömböt fscanf segítségével?
Veszélyes játék a memóriával: Miért életbevágó a malloc() visszatérési értékének ellenőrzése?
  • Szoftver

Veszélyes játék a memóriával: Miért életbevágó a malloc() visszatérési értékének ellenőrzése?

2025.09.03.
A leghatékonyabb C# Mátrix algoritmusok gyűjteménye
  • Szoftver

A leghatékonyabb C# Mátrix algoritmusok gyűjteménye

2025.09.03.
C++ Mátrix feltöltés elegánsan: Így csináld segédváltozó nélkül!
  • Szoftver

C++ Mátrix feltöltés elegánsan: Így csináld segédváltozó nélkül!

2025.09.03.
Mátrixok szorzása egyszerűen: Az algoritmus, amit meg kell értened
  • Szoftver

Mátrixok szorzása egyszerűen: Az algoritmus, amit meg kell értened

2025.09.03.

Ne maradj le

C programozási anomáliák: Mi történik, ha számmal töltöd fel a char tömböt fscanf segítségével?
  • Szoftver

C programozási anomáliák: Mi történik, ha számmal töltöd fel a char tömböt fscanf segítségével?

2025.09.03.
Veszélyes játék a memóriával: Miért életbevágó a malloc() visszatérési értékének ellenőrzése?
  • Szoftver

Veszélyes játék a memóriával: Miért életbevágó a malloc() visszatérési értékének ellenőrzése?

2025.09.03.
A leghatékonyabb C# Mátrix algoritmusok gyűjteménye
  • Szoftver

A leghatékonyabb C# Mátrix algoritmusok gyűjteménye

2025.09.03.
C++ Mátrix feltöltés elegánsan: Így csináld segédváltozó nélkül!
  • Szoftver

C++ Mátrix feltöltés elegánsan: Így csináld segédváltozó nélkül!

2025.09.03.
Copyright © 2025 SilverPC Blog | SilverPC kérdések

Az oldalon megjelenő minden cikk, kép és egyéb tartalom a SilverPC.hu tulajdonát képezi, felhasználásuk kizárólag az eredeti forrás pontos és jól látható feltüntetésével engedélyezett.