Seveda. Spodaj je očiščena, uporabniško razumljiva verzija navodil za **CM Free/Plus e-pošta / SMTP / msmtp**. Namenoma sem jo napisal tako, da je primerna skoraj direktno za `help.php`, ampak še dovolj berljiva, da jo najprej pregledaš.

---

# Nastavitev e-pošte v CM Free/Plus

CM Free/Plus za pošiljanje e-pošte uporablja sistemski poštni vmesnik `sendmail`. Na Ubuntu/Debian namestitvah to v našem primeru zagotavlja program **msmtp**.

Poenostavljeno:

```text
CM Free/Plus → PHP sendmail → msmtp → Gmail/SMTP strežnik → gost/admin
```

DEB paket že namesti:

```text
msmtp
msmtp-mta
```

Ročno pa mora uporabnik nastaviti še SMTP račun.

---

## 1. Preveri, ali je msmtp nameščen

Na strežniku poženi:

```bash
which msmtp
which sendmail
php -i | grep -i sendmail_path
ls -l /usr/sbin/sendmail
```

Približno pravilen rezultat je:

```text
/usr/bin/msmtp
/usr/sbin/sendmail
sendmail_path => /usr/sbin/sendmail -t -i
/usr/sbin/sendmail -> ../bin/msmtp
```

Če to vidiš, je osnovna sistemska pot pripravljena.

---

## 2. Gmail: ustvari App Password

Za Gmail ne uporabi navadnega gesla. Potrebuješ **App Password**.

Najhitrejša pot je direktni link:

```text
https://myaccount.google.com/apppasswords
```

Prijavi se v Gmail račun, ki bo pošiljal e-pošto.

Potem:

```text
1. Ustvari novo App Password.
2. Kot ime lahko napišeš: CM Free msmtp
3. Google pokaže 16-mestno geslo.
4. Geslo kopiraj brez presledkov.
```

Če App Passwords ne vidiš, mora biti na tem Google računu najprej omogočen **2-Step Verification**.

---

## 3. Ustvari sistemsko msmtp konfiguracijo

Odpri konfiguracijo:

```bash
sudo nano /etc/msmtprc
```

Vstavi:

```conf
# CM Free / Plus system-wide msmtp configuration
# Used by Apache/PHP through /usr/sbin/sendmail -> msmtp

defaults
auth           on
tls            on
tls_starttls   on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

account gmail
host smtp.gmail.com
port 587
from nekdo@gmail.com
user nekdo@gmail.com
password TVOJE_16_MESTNO_APP_PASSWORD_BREZ_PRESLEDKOV

account default : gmail
```

Zamenjaj:

```text
nekdo@gmail.com
```

z Gmail računom, ki bo pošiljal e-pošto.

Zamenjaj tudi:

```text
TVOJE_16_MESTNO_APP_PASSWORD_BREZ_PRESLEDKOV
```

z Gmail App Password geslom.

Pomembno:

```text
Geslo vpiši brez presledkov.
Uporabnik in from naslov morata pripadati istemu Gmail računu.
```

---

## 4. Nastavi pravice

Ker je v `/etc/msmtprc` geslo, morajo biti pravice varne, hkrati pa mora Apache/PHP uporabnik `www-data` datoteko prebrati.

```bash
sudo chown root:www-data /etc/msmtprc
sudo chmod 640 /etc/msmtprc
```

---

## 5. Test kot Apache/PHP uporabnik

Najpomembnejši test je test kot `www-data`, ker kot ta uporabnik običajno teče Apache/PHP.

```bash
printf "Subject: CM Free mail test\n\nTest from CM Free via msmtp.\n" | sudo -u www-data sendmail nekdo@gmail.com
```

Če ni napake in e-pošta pride v nabiralnik, je osnovna nastavitev pravilna.

---

## 6. Test z drugim prejemnikom

Za test lahko pošlješ tudi na drug naslov:

```bash
printf "Subject: CM Free mail test\n\nTest from CM Free via msmtp.\n" | sudo -u www-data sendmail prejemnik@example.com
```

---

## 7. Nastavitev v CM Free/Plus

Ko sistemski test uspe, v CM admin nastavitvah nastavi e-pošto.

Primer:

```text
Email enabled: true
From name: CM Free Demo
From email: nekdo@gmail.com
Admin email: tvoj-naslov@example.com
```

`From email` naj se ujema z Gmail računom iz `/etc/msmtprc`.

`Admin email` je naslov, kamor želiš prejemati obvestila o povpraševanjih.

---

## 8. Logiranje: osnovna in napredna varianta

Za začetno nastavitev je priporočljivo, da `logfile` v `/etc/msmtprc` sploh ni nastavljen.

Torej v osnovni konfiguraciji **ni** vrstice:

```conf
logfile /var/log/msmtp.log
```

Razlog: pošiljanje lahko deluje pravilno, log datoteka pa lahko povzroča težave s pravicami. Za navadnega uporabnika je to nepotrebna ovira.

Če pošta deluje, je to dovolj.

Napredni uporabnik lahko kasneje doda logiranje, na primer:

```conf
logfile /var/log/msmtp.log
```

in uredi pravice za log datoteko. Ampak to ni obvezno za delovanje CM Free/Plus.

---

## 9. Najpogostejše napake

### Gmail zavrne geslo

Napaka:

```text
535-5.7.8 Username and Password not accepted
```

Možni vzroki:

```text
- uporabljeno je navadno Gmail geslo namesto App Password
- App Password je iz drugega Google računa
- geslo je prekopirano s presledki
- v /etc/msmtprc sta napačna user/from
- 2-Step Verification ni omogočen
```

### Ni default accounta

Če `sendmail` ne ve, kateri account uporabiti, preveri, da je na koncu `/etc/msmtprc`:

```conf
account default : gmail
```

### Pošta se pošlje, log pa javlja Permission denied

Če vidiš nekaj takega:

```text
smtpstatus=250
exitcode=EX_OK
cannot log ... Permission denied
```

je pošta poslana uspešno. Problem je samo logiranje.

Najlažja rešitev za navadno CM Free/Plus namestitev: odstrani ali zakomentiraj `logfile` vrstico v `/etc/msmtprc`.

---

## 10. Minimalni delujoči primer

Najkrajša uporabna konfiguracija za Gmail:

```conf
defaults
auth           on
tls            on
tls_starttls   on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

account gmail
host smtp.gmail.com
port 587
from nekdo@gmail.com
user nekdo@gmail.com
password TVOJE_APP_PASSWORD_BREZ_PRESLEDKOV

account default : gmail
```

Pravice:

```bash
sudo chown root:www-data /etc/msmtprc
sudo chmod 640 /etc/msmtprc
```

Test:

```bash
printf "Subject: CM Free mail test\n\nTest from CM Free.\n" | sudo -u www-data sendmail nekdo@gmail.com
```

Če test uspe, je CM Free/Plus pripravljen za pošiljanje e-pošte.

---

