> For the complete documentation index, see [llms.txt](https://docs.chamilo.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chamilo.org/3.x/el/odigos-diaxeirisis/admin-guide/installation/email-configuration.md).

# Διαμόρφωση ηλεκτρονικού ταχυδρομείου

Το Chamilo διαχειρίζεται πλέον τη ρύθμιση αποστολής ηλεκτρονικών μηνυμάτων από τον πίνακα διαχείρισης, στην ενότητα ρυθμίσεων πλατφόρμας (υπάρχει ειδική καταχώριση για τα ηλεκτρονικά μηνύματα). Τα μηνύματα αποστέλλονται για δημιουργίες λογαριασμών, επαναφορές κωδικών πρόσβασης, ειδοποιήσεις μαθημάτων, ειδοποιήσεις μηνυμάτων και άλλα συμβάντα της πλατφόρμας. Η παράδοση ηλεκτρονικού ταχυδρομείου ρυθμίζεται μέσω της ρύθμισης `MAILER_DSN`.

## Ρύθμιση

Ορίστε την επιλογή `Mail DSN` στην ενότητα /admin/settings/mail. Η μορφή εξαρτάται από τη μεταφορά ηλεκτρονικού ταχυδρομείου που χρησιμοποιείτε.

### SMTP

Η πιο συνηθισμένη ρύθμιση, κατάλληλη για οποιονδήποτε διακομιστή SMTP:

```bash
# Let the system decide
native://default

# Basic SMTP
smtp://username:password@smtp.example.com:587

# SMTP with TLS (most providers)
smtp://username:password@smtp.example.com:587?encryption=tls

# SMTP without authentication (local relay)
smtp://localhost:25
```

Αντικαταστήστε τα `username`, `password` και τον κεντρικό υπολογιστή με τα διαπιστευτήρια του διακομιστή SMTP σας.

### Amazon SES

```bash
# Using SMTP interface
ses+smtp://ACCESS_KEY:SECRET_KEY@default?region=us-east-1

# Using API
ses+api://ACCESS_KEY:SECRET_KEY@default?region=us-east-1
```

Η μεταφορά Symfony Amazon Mailer είναι ενσωματωμένη στο Chamilo. Δεν απαιτείται πρόσθετη εγκατάσταση.

### Mailjet

```bash
mailjet+api://API_KEY:SECRET_KEY@default
```

Η μεταφορά Symfony Mailjet είναι ενσωματωμένη στο Chamilo. Δεν απαιτείται πρόσθετη εγκατάσταση.

### Brevo (πρώην Sendinblue)

```bash
brevo+api://API_KEY@default
```

Η μεταφορά Symfony Brevo είναι ενσωματωμένη στο Chamilo. Δεν απαιτείται πρόσθετη εγκατάσταση.

### Microsoft 365 / Outlook (Microsoft Graph API)

Η Microsoft καταργεί το SMTP με βασικό έλεγχο ταυτότητας στο Exchange Online, επομένως ένα απλό DSN `smtp://user:password@smtp.office365.com:587` λειτουργεί μόνο όσο ο διαχειριστής του μισθωτή διατηρεί ρητά ενεργοποιημένο το «Authenticated SMTP» στο συγκεκριμένο γραμματοκιβώτιο. Στείλτε μέσω του Microsoft Graph API — δεν χρησιμοποιεί καθόλου SMTP:

```bash
microsoftgraph+api://CLIENT_ID:CLIENT_SECRET@default?tenantId=TENANT_ID
```

Η μεταφορά Symfony Microsoft Graph είναι ενσωματωμένη στο Chamilo. Δεν απαιτείται πρόσθετη εγκατάσταση.

Για να λάβετε αυτές τις τρεις τιμές, στο [κέντρο διαχείρισης Microsoft Entra](https://entra.microsoft.com):

1. Καταχωρίστε μια εφαρμογή. Το **Application (client) ID** και το **Directory (tenant) ID** είναι τα `CLIENT_ID` και `TENANT_ID`.
2. Στην ενότητα *API permissions*, προσθέστε την **application** άδεια Microsoft Graph `Mail.Send` (όχι την delegated), και στη συνέχεια χορηγήστε συναίνεση διαχειριστή.
3. Στην ενότητα *Certificates & secrets*, δημιουργήστε ένα μυστικό πελάτη. Η **τιμή** του (όχι το ID του) είναι το `CLIENT_SECRET`.

Σημειώσεις:

* Κωδικοποιήστε με URL-encode οποιονδήποτε χαρακτήρα με ειδική σημασία σε URL που εμφανίζεται στο μυστικό πελάτη (`@` ως `%40`, `+` ως `%2B`, `/` ως `%2F`, και ούτω καθεξής).
* Η διεύθυνση που έχει ρυθμιστεί στο **Αποστολή όλων των ηλεκτρονικών μηνυμάτων από αυτή τη διεύθυνση ηλεκτρονικού ταχυδρομείου** πρέπει να είναι πραγματικό γραμματοκιβώτιο εντός του μισθωτή σας, διαφορετικά η Microsoft απορρίπτει το μήνυμα.
* Προσθέστε `&noSave=true` στο DSN εάν δεν θέλετε αντίγραφο κάθε μηνύματος της πλατφόρμας να αποθηκεύεται στον φάκελο *Sent Items* του αποστολέα.
* Για εθνικά νέφη, κατευθύνετε το DSN στα σωστά τελικά σημεία, χωρίς το πρόθεμα `https://`: `microsoftgraph+api://CLIENT_ID:CLIENT_SECRET@microsoftgraph.chinacloudapi.cn?tenantId=TENANT_ID&authEndpoint=login.partner.microsoftonline.cn`.

**Προειδοποίηση ασφαλείας:** η *application* άδεια `Mail.Send` επιτρέπει στην καταχωρισμένη εφαρμογή να στέλνει ηλεκτρονικό ταχυδρομείο ως **οποιοδήποτε** γραμματοκιβώτιο του μισθωτή, όχι μόνο αυτό που χρησιμοποιεί το Chamilo. Περιορίστε την στο γραμματοκιβώτιο αποστολέα με πολιτική πρόσβασης εφαρμογής του Exchange Online:

```powershell
New-ApplicationAccessPolicy -AppId CLIENT_ID -PolicyScopeGroupId no-reply@yourdomain.com -AccessRight RestrictAccess -Description "Restrict Chamilo to its sender mailbox"
```

### Gmail (ανάπτυξη / μικρές πλατφόρμες)

```bash
gmail+smtp://your-email@gmail.com:app-password@default
```

Χρησιμοποιήστε κωδικό εφαρμογής (App Password), όχι τον κανονικό κωδικό του Gmail. Αυτό είναι κατάλληλο μόνο για μικρές πλατφόρμες ή ανάπτυξη, καθώς το Gmail έχει όρια αποστολής.

## Ρυθμίσεις ηλεκτρονικού ταχυδρομείου πλατφόρμας

Εκτός από τη μεταφορά, ρυθμίστε την ταυτότητα αποστολέα στην ίδια σελίδα:

| Ρύθμιση                                                                                      | Περιγραφή                                                                                                                                                                                                                                                                                        |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Αποστολή όλων των ηλεκτρονικών μηνυμάτων ως προερχόμενων από αυτό το (οργανωσιακό) όνομα** | Το εμφανιζόμενο όνομα που συνδέεται με τα μηνύματα συστήματος.                                                                                                                                                                                                                                   |
| **Αποστολή όλων των ηλεκτρονικών μηνυμάτων από αυτή τη διεύθυνση ηλεκτρονικού ταχυδρομείου** | Η διεύθυνση «From» για όλα τα μηνύματα συστήματος. Πρέπει να είναι έγκυρη διεύθυνση αποδεκτή από τη μεταφορά ηλεκτρονικού ταχυδρομείου σας. Συνιστούμε τη χρήση διεύθυνσης «χωρίς απάντηση» όπως `no-reply@yourdomain.com` ώστε να αποφεύγονται άσκοπες απαντήσεις σε αυτοματοποιημένα μηνύματα. |

## Δοκιμή παράδοσης email

Μετά τη ρύθμιση του `MAILER_DSN`, ελέγξτε ότι τα email παραδίδονται: Μεταβείτε στο *Διαχείριση* > *Σύστημα* > *Δοκιμαστής e-mail*, ορίστε έναν παραλήπτη, ένα θέμα και ένα σώμα e-mail και κάντε κλικ στο **Αποστολή δοκιμαστικού email**.

Αν η εντολή ολοκληρωθεί χωρίς σφάλματα αλλά το email δεν παραληφθεί:

1. Ελέγξτε τον φάκελο spam/ανεπιθύμητων του παραλήπτη.
2. Βεβαιωθείτε ότι ο τομέας αποστολής διαθέτει σωστές εγγραφές DNS (SPF, DKIM, DMARC).
3. Ελέγξτε τα αρχεία καταγραφής αποστολής του παρόχου email για αναπηδήσεις ή απορρίψεις.
4. Εξετάστε το αρχείο καταγραφής του Chamilo στο `var/log/prod.log` για σφάλματα του mailer.
5. Στις ρυθμίσεις διαμόρφωσης E-mail, ενεργοποιήστε το *Mail: Debug* (δεν είναι διαθέσιμο στην 3.0, θα είναι σύντομα).

## Πειραματικό: Ουρά email (ασύγχρονη παράδοση)

Από προεπιλογή, τα email αποστέλλονται συγχρονισμένα κατά τη διάρκεια του αιτήματος web. Για καλύτερη απόδοση, ρυθμίστε ασύγχρονη παράδοση με το Symfony Messenger:

```yaml
# config/packages/messenger.yaml
framework:
    messenger:
        transports:
            async: '%env(MESSENGER_TRANSPORT_DSN)%'
        routing:
            'Symfony\Component\Mailer\Messenger\SendEmailMessage': async
```

Με ασύγχρονη παράδοση, τα email τοποθετούνται σε ουρά και αποστέλλονται από έναν εργαζόμενο στο παρασκήνιο:

```bash
php bin/console messenger:consume async
```

Εκτελέστε το ως υπηρεσία συστήματος (π.χ. μέσω systemd ή supervisord) ώστε να παραμένει σε λειτουργία.

## Συμβουλές

* **Χρησιμοποιήστε αποκλειστική υπηρεσία email** (SES, Mailjet, Brevo) για πλατφόρμες παραγωγής. Η απευθείας SMTP προς τον δικό σας διακομιστή αλληλογραφίας απαιτεί προσεκτική διαμόρφωση ώστε να αποφεύγονται προβλήματα παραδοσιμότητας.
* **Ρυθμίστε εγγραφές DNS SPF, DKIM και DMARC** για τον τομέα αποστολής ώστε να μεγιστοποιήσετε τα ποσοστά παράδοσης και να αποτρέψετε τη σήμανση των email ως spam. Μπορείτε επίσης να ρυθμίσετε κεφαλίδες DKIM από τη σελίδα ρυθμίσεων e-mail.
* **Χρησιμοποιήστε ασύγχρονη παράδοση** σε πλατφόρμες με περισσότερους από μερικές δεκάδες ενεργούς χρήστες -- η συγχρονισμένη αποστολή email μπορεί να επιβραδύνει αισθητά τα αιτήματα web.
