1. Home
  2. E-pasts
  3. E-pasts uz HTTP
  1. Home
  2. Tehnisks
  3. E-pasts uz HTTP
  1. Home
  2. E-pasta iestatīšana
  3. E-pasts uz HTTP

E-pasts uz HTTP

Papildus jebkurai citai e-pasta adresei ienākošo pastu var arī pārsūtīt kā HTTP pieprasījumu uz URL, kas dod iespēju e-pastu apstrādāt programmatiski.

Datu drošības apsvērumu dēļ var izmantot tikai URL ar to pašu domēnu kā atsauces e-pasta adresei. Ir atļauti arī apakšdomēni.
Piemēram, atsauces adrese, kas pievienota pastkastei name@example.com, ir https://example.com/mail_to_http.php.

Ja URL/fails, kas saņem pieprasījumu, ir aizsargāts ar Apache Basic auth (HTTP autentifikācija), tā lietotājvārds un parole jāpievieno URL šādā formā:
https://user:pwd@example.com/mail_to_http.php

Tu vari pievienot Mail-to-http pāradresācijas URL My Zone vadības panelī sadaļā Web-hosting -> E-mail -> Mailboxes, pēc tam noklikšķini uz pastkastes un izvēlies Forwarding .

 

Kad pienāk jauns e-pasts, serveris veic HTTP POST pieprasījumu uz URL.
Masīva $_POST mainīgie ir:

id (string): ziņojuma ID
from (string): e-pasta sūtītāja e-pasta adrese
to (string): e-pasta saņēmēja e-pasta adrese
headers (array):
  from (JSON object): e-pasta sūtītāja vārds un e-pasta adrese
  to (JSON array): e-pasta saņēmēja vārds un e-pasta adrese
  date (string): nosūtīšanas laiks (RFC 2822)
  message_id (string): e-pasta unikālais Message-ID
  subject (string): e-pasta temats
mail_to_http (array):
  from (string): e-pasta sūtītājs (SMTP protokols MAIL FROM:)
  rcpt (string): e-pasta saņēmējs (SMTP protokols RCPT TO:)
  real_length (int): pilns neapstrādātā e-pasta (body) garums
  body (string): neapstrādāts e-pasts (RFC822)
Papildu informācija

['mail_to_http']['body'] galvenokārt ir paredzēts e-pastiem bez lieliem pielikumiem, jo, ja e-pasts ir lielāks par 500 KB, pārējā daļa tiks nogriezta.

E-pastu, kas lielāks par 500 KB, var saņemt kā .eml failus no masīva $_FILES.
Lauki masīvā $_FILES ir tipiski POST augšupielādēm:
PHP dokumentācija: POST metodes augšupielādes

Masīva $_FILES mainīgie ir:

message (array):
  name (string): .eml faila nosaukums
  type (string): e-pasta formāta tips
  tmp_name (string): absolūtais ceļš uz pagaidu failu
  error (string): kļūdas kods
  size (string): faila izmērs baitos

Ja skripts vai tīmekļa serveris, kas saņem POST pieprasījumu, kā HTTP statusa kodu atgriež kļūdas kodu 5xx, e-pasta serveris paturēs e-pastu rindā un pēc kāda laika mēģinās to nosūtīt atkārtoti uz to pašu URL.

Updated on 3. Apr 2024
Was this article helpful?

Related Articles