Elxis CMS Forum

Ελληνικό Forum => Πρόσθετα => Topic started by: michalis1984 on February 27, 2021, 13:40:38

Title: Attachment στην συνάρτηση sendmail
Post by: michalis1984 on February 27, 2021, 13:40:38
Hello. Προσπαθώ μέσω της συνάρτησης sendmail να στείλω και attachment. Ψάχνωντας λίγο την συνάρτηση στον πυρήνα βρήκα το πιο κάτω. Τι μορφή πρέπει να είναι το attachment; Απλό string variable με το url του αρχείου ή κάτι άλλο; Και αν θέλουμε να στείλουμε 2-3 attachment;

public function sendmail($subject, $body, $alt_body='', $attachment=null, $type='plain', $to=null, $cc=null, $bcc=null, $from=null, $priority=3, $debug=false, $replyto=null) {
Title: Re: Attachment στην συνάρτηση sendmail
Post by: datahell on February 28, 2021, 13:51:41
Η τιμή της μεταβλητής $attachment μπορεί να είναι:
null - κανένα συνημμένο
string - πλήρης διαδρομή προς ένα αρχείο
array - ένα array με πλήρες διαδρομές προς πολλαπλά αρχεία

Παράδειγμα:
$elxis = eFactory::getElxis();
$eFiles = eFactory::getFiles();

//Χωρίς συννημένα
$attachment = null;
//Με ένα συνημμένο που βρίσκεται στο φάκελο "tmp" του repository
$attachment = $eFiles->elxisPath('tmp/file1.pdf', true);
//Με 3 συνημμένα που βρίσκονται σε διάφορες διαδρομές.
$attachment = array(
   $eFiles->elxisPath('tmp/file1.pdf', true),
   $eFiles->elxisPath('media/images/mypicture.jpg', false),
   $eFiles->elxisPath('media/attachments/somedoc.docx', false)
);

$to = 'email@example.com,Name Surname';
$replyto = $elxis->getConfig('MAIL_FROM_EMAIL').','.$elxis->getConfig('MAIL_FROM_NAME');
$subject = 'Mail subject here';
$mail_txt = 'Email text here';

$elxis->sendmail($subject, $mail_txt, '', $attachment, 'plain', $to, null, null, null, 3, false, $replyto);

Μπορείς να στείλεις και σε πολλαπλούς παραλήπτες, να βάλεις CC, BCC, να το στείλεις ως html, και πολλά άλλα. Ρώτα αν θες κάτι άλλο.

* Στη συνάρτηση elxisPath η πρώτη μεταβλητή είναι η σχετική διαδρομή του αρχείου ως προς τον πηγαίο κατάλογο του Elxis ή του repository και η δεύτερη true/false εάν το αρχείο βρίσκεται στο repository ή όχι.
** Αν θες στο $attachment μπορείς να δηλώσεις την πλήρη διαδρομή και χωρίς τη συνάρτηση elxisPath, βάζοντας πχ /home/sites/mysite/public_html/something/file.pdf απλά είναι πολύ πιο εύκολο να χρησιμοποιήσεις την elxisPath και ο κώδικάς σου είναι portable (δηλ. αν μεταφέρεις το site ή βάλεις τον κώδικα και σε άλλο site θα δουλεύει χωρίς καμία αλλαγή).
Title: Re: Attachment στην συνάρτηση sendmail
Post by: michalis1984 on March 01, 2021, 21:15:56
Υπέροχος! Σε υπερ-ευχαριστώ! Με κάλυψες απόλυτα.