# Vrh.OneMessage
Ez a leírás a komponens **v0.0.0** kiadásáig bezáróan naprakész.
Igényelt minimális framework verzió: **4.5**
Teljes funkcionalitás és hatékonyság kihasználásához szükséges legalacsonyabb framework verzió: **4.5**

**A komponens 2 NuGet csomagot is tartalmaz.**
1. Vrh.OneMessage.dll, amely e-mail küldést tesz lehetővé közvetlenül a OneMessage osztály példányosításával,
majd a SendMessage metódus meghívásával. Ez az összetevő nem tartalmaz web alkalmazásra jellemző egyéb komponenst.
2. Vrh.Web.OneMessage, mely lehetővé teszi, hogy az MVC alkalmazás alól a OneMessage area OneMessage controllerének 
SendSMTPMessage akciójával történjen a küldés.

### Paraméterező XML fájl felépítése
Az XML részletekben a "<>" jelek közötti részek tartalmazzák az elemneveket és attribútumokat.
Ahol "+" jel van, azok egy zárt elemet jelentenek, egy későbbi címben lesznek kifejtve. 
Így tárva fel a teljes szerkezetet.
#### OneMessage paraméterező xml szerkezete
```xml
<OneMessageParameters>
    <XmlParser>
    <DeliveryDefinitions>
        <DeliveryDefinition>+
    </DeliveryDefinitions>
    <OneMessageDefinitions>
        <OneMessage>+
    </OneMessageDefinitions>
</OneMessageParameters>
```
A **OneMessageParameters** gyökér elembe ágyazva kell szerepeltetni a definíciókat és paraméterezést.
A gyökér elnevezése lehet más is.

Elem|Leírás
:----|:------
XmlParser|Az egységes xml feldolgozás eleme. Változók gyűjteménye itt.
[DeliveryDefinition](####DeliveryDefinition-elem)|A megadott üzenet valamelyik itt lévő szállítási adatok alapján fog működni.
[OneMessage](####OneMessage-elem)|Az egyes üzenetek paraméterezését tartalmazó elem.

#### DeliveryDefinition elem
```xml
<DeliveryDefinition Name="dd1">
    <ConnectionStringName>log4pro</ConnectionStringName>
    <SendAs>log4prolear@gmail.com</SendAs>
    <SendCopyTo></SendCopyTo>
</DeliveryDefinition>
```
A DeliveryDefinition-ban található a szállítási adat. Az edott üzenetnél megadható, hogy melyik szállítási adtokat használja.

Elem|Leírás
:----|:------
ConnectionStringName|EmailServer kapcsolati sztring neve, amelyet majd a ConnectionStringStore-ban keres.
SendAs|Kinek a nevében történik majd az üzenetküldés, annak az email címe.
SendCopyTo|Ki kap másolatot az üzenetből. Vesszővel elválaszott email címek (címzettek) listája.

Attribútum|Leírás
:----|:------
Name|A szállítási információk megnevezése. Erre kell hivatkozni az üzenetben.

#### OneMessage elem
```xml
<OneMessage Id="mess0" Delivery="dd1">
    <SendTo>aaa@bbb.com,eee@ggg.hu</SendTo>
    <Subject>Ez egy tárgy.</Subject>
    <MessageBody>
        Tisztelt Címzett!

        Elnézést a zavarásért! 

        Köszönettel, XY!
    </MessageBody>
    <Attachments Folder="~" DeleteAfterSend="true">
       <Attachment File="TestFile1Xml.txt" Folder="D:\"/>
       <Attachment File="TestFile2Xml.txt" Folder="E:\"/>
    </Attachments>
</OneMessage>
```

Elem|Leírás
:----|:------
SendTo|Elsődleges címzettek vesszővel elválasztott listája.
Subject|Az üzenet tárgya.
MessageBody|Az üzenet tartalma.
Attachments|A csatolt fájlok leírásait tartalmazó elem alapértelmezett mappa beállítási lehetőséggel.
Attachment|A csatolt fájlok mappa és fájnév megadással.

Attribútum|Leírás
:----|:------
Id|Az üzenet azonosítója. Erre kell hivatkozni a meghívásakor.
Delivery|A szállítási információkat tartalmazó elemre való hivatkozás.
Attachments.Folder|Egy alapértelmezett mappa a csatolmányok számára, ha ott nem adnka meg mappát.
DeleteAfterSend|A sikeres küldés után engedélyezett-e a csatolmány törlése.
File|A csatolmány fájl neve.
Attachment.Folder|A csatolmány mappája. Ha nincs megadva, akkor a gyűjtő elemben megadott folder lesz az érvényes.

# TODO: Kiegészítendő a komponens dokumentációja !!!

# Version History:

#### 2.1.0 (2019.08.26) Compatible changes - debug:
- Megváltozott a OneMessage osztály konstruktorának paraméterezése.
- A SendSMTPMessage akció újra feldolgozza a paramlist string tömböt.
- A "parameterseparator" attribútumok megszűntek
- Frissítés a VRH.Common 2.7.0 változatára.
- Frissítés a VRH.Log4Pro.MultiLanguageManager 3.8.1 változatára.
- Frissítés a Vrh.XmlProcessing 1.5.0 változatára.

#### 2.0.0 (2019.08.08) Incompatible changes - debug:
- Vrh.OneMessage.dll kizárólag egy .NET assembly webes összetevő függés nélkül.
- Vrh.Web.OneMessage.dll assmebly-t kell használni, ha egy webes akción keresztül kell elérni a levélküldést.

#### 1.1.4 (2019.05.22) Patches - debug:
- Tesztkörnyezett finomítása.

#### 1.1.4 (2019.05.22) Patches - debug:
- Tesztkörnyezett finomítása.

#### 1.1.3 (2019.04.24) Patches - debug:
- Frissítés a Microsoft.AspNet.Mvc 5.2.7 változatára.

#### 1.1.2 (2017.04.28) Patches:
- Attachment esetén használja az XML-ben definiált paraméter szeparátort.
- SendSMTPMessage akció válaszában minden hiba esetén -1 lesz a ReturnValue.

#### 1.1.1 (2017.04.28) Patches:
- Névtér átnvezés: 'Vrh.OneMessage'-re a 'Vrh.OneMessage.Area.OneMessage'-ről.

#### v1.1.0 (2017.04.28) Compatible API changes:
- A ReceivedParameters osztály kibővítése, hogy az üzenet tárgya is érkezhessen
paraméterként. A SendSMTPMessage action url vagy dict paraméterként tudja 
fogadni 'subject' néven. Példányosítás esetén a ReceivedParameters osztály 
Subject tulajdonságába kell írni a paraméternek szánt tárgyat.
- Paraméterként érkező csatolmány elérési utak is tartalmazhatnak
behelyettesítendő hivatkozásokat.

#### v1.0.0 (2017.04.04) 
Initial Relase