Εικόνα σε email (όχι HTML). Πως;

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από Mandingueiro » 03 Ιαν 2009 14:53

Γειά σας παιδιά.

Αυτό που θέλω να κάνω είναι να στείλω μια εικόνα μέσα σ'ένα email, αλλα να εμφανίζεται μέσα στο body του email, όχι σαν attachment, έτσι ώστε αυτός που το διαβάζει να την βλέπει κατευθείαν χωρίς να χρειάζεται να κλικάρει αλλού. Ξέρω ότι αυτό γίνεται με HTML εμαιλ Εύκολα αλλά δεν θέλω να το κάνω έτσι. Θέλω να το κάνω σαν να πήγαινα απο το outlook και να πατούσα insert picture. :)

ευχαριστώ προκαταβολικά

zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από zeppos » 05 Ιαν 2009 19:26

Μακάρι να ήταν έτσι απλό! Θα ήθελα να το μάθω και γω αν το κατέχει κάποιος, έχουμε εδώ πολλούς καταπληκτικούς στην php..
Η μόνη λύση που εγώ έχω υλοποιήσει σε ένα σάιτ, είναι η αποστολή μαιλ με php (προσοχή στα headers) και αν υπάρχει και εικόνα που θέλω να στείλω, την ανεβάζω στον σέρβερ και γράφω μετά μέσα στο μήνυμα την διαδρομή (λινκ) της εικόνας και στην θέση που θέλω να φαίνεται..
Τελευταία αυτό έγινε με μια ευχητήρια "καρτα" - μέιλ προς τα μέλη μιας σελίδας..
Εικόνα

Άβαταρ μέλους
fiskilis
Honorary Member
Δημοσιεύσεις: 14093
Εγγραφή: 16 Νοέμ 2003 22:44
Τοποθεσία: Athens
Επικοινωνία:

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από fiskilis » 05 Ιαν 2009 20:29

εγω με το outlook express 6 απλα μαρκαρω την φωτογραφια και κανω επικοληση στο σωμα του μηνυματος και αυτοματα εμφανιζεται εκει και ετσι παει για δοκιμασε το να το δεις οτι γινεται

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από cpulse » 05 Ιαν 2009 21:49

Η λύση είναι να χρησιμοποιήσεις το μαγικό CID (content id) αντί για filename.

Η κάθε εικόνα θα πρέπει να έχει ένα μοναδικό όνομα CID στο email. Μπορείς να το κάνεις με..

Κώδικας: Επιλογή όλων

$cid = md5(microtime()) . '@mail';
Τώρα θα πρέπει μέσα στο html του email, αντί για filename να χρησιμοποιήσεις το cid με την μορφή "cid:<CID>", πχ:

Κώδικας: Επιλογή όλων

<img src="cid&#58;abcdef@mail">
Και τέλος την εικόνα θα την βάλεις κανονικά σαν attachment, αλλά αντι για filename θα βάλεις το CID με αυτή τη μορφή:

Κώδικας: Επιλογή όλων

Content-ID&#58; <abcdef@mail>
Content-Type&#58; image/jpg
Content-Transfer-Encoding&#58; base64
από τα παραπάνω μόνο το Content-ID βάλτω όπως το λέω, τα άλλα τα αλλάζεις ανάλογα με την μορφή του attachment.

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από Mandingueiro » 06 Ιαν 2009 20:23

Ευχαριστώ για την απάντηση cPulse αλλα μπερδεύτηκα λίγο.
Στην 1η γραμμή που γράφεις,

Κώδικας: Επιλογή όλων

$cid = md5&#40;microtime&#40;&#41;&#41; . '@mail';
αυτούσιο στην αρχή του script;

και στον 3ο κώδικα που γράφεις,

Κώδικας: Επιλογή όλων

Content-ID&#58; <abcdef@mail>
Content-Type&#58; image/jpg
Content-Transfer-Encoding&#58; base64 
αυτό που ακριβώς θα μπεί; και πως θα ορίσω απο που να παίρνει την εικόνα; δεν θα πρέπει κάπου μέσα στο script να το ορίσω αυτό;

Γενικά δεν έχω πείρα με τα headers και με μπερδεύουν αρκετά. Έχω βρεί αυτό το site, να ακολουθήσω οδηγίες απο αυτό και να τα συνδυάσω με τα δικά σου μήπως; http://webcheatsheet.com/php/send_email ... attachment

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από cpulse » 06 Ιαν 2009 23:31

Είναι ιδιαίτερα περίπλοκο το θέμα. Αυτά που είπα τα είπα για την περίπτωση που ήδη ξέρεις για boundaries και τέτοια.

Αν δεν τα ξέρεις αυτά καλύτερα χρησιμοποίησε μια free βιβλιοθήκη την phpmailer.

Το function που θα σε βοηθήσει να βάλεις το image με το CID είναι το AddEmbeddedImage()

Άβαταρ μέλους
Mandingueiro
Δημοσιεύσεις: 270
Εγγραφή: 07 Φεβ 2006 19:26

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από Mandingueiro » 12 Ιαν 2009 06:21

cpulse έγραψε:Είναι ιδιαίτερα περίπλοκο το θέμα. Αυτά που είπα τα είπα για την περίπτωση που ήδη ξέρεις για boundaries και τέτοια.

Αν δεν τα ξέρεις αυτά καλύτερα χρησιμοποίησε μια free βιβλιοθήκη την phpmailer.

Το function που θα σε βοηθήσει να βάλεις το image με το CID είναι το AddEmbeddedImage()
Ευχαριστώ για τη βοήθεια cpulse. Κατέβασα το phpmailer και προσπάθησα να στείλω ένα mail Με αυτό το function που μου πρότεινες (διάβασα το documentation). Το email εστάλη κανονικά, και το attachment ήταν μέσα, αλλά η εικόνα δεν φαινόταν inline στον κορμό του μηνύματος... φαίνόταν δηλαδή κάπως έτσι...
Εικόνα

Έγραψα και στο Forum τοy project στο sourceforge αλλά δεν έχω πάρει απάντηση και έχουν περάσει 7 ημέρες.

Σε περίπτωση που μπορείς εσύ να με βοηθήσεις, παραθέτω και τον κώδικα που χρησιμοποίησα..

Κώδικας: Επιλογή όλων

<?php 
 
require&#40;"class.phpmailer.php"&#41;; 
 
$mail = new PHPMailer&#40;&#41;; 
 
$mail->IsSMTP&#40;&#41;; // telling the class to use SMTP 
$mail->Host = "χχχχ.χχχχχχχ.χχχ"; // SMTP server 
 
$mail->From = "χχχ"; 
$mail->AddAddress&#40;"χχχχχ"&#41;; 
 
$mail->IsHTML&#40;true&#41;; 
 
$mail->AddEmbeddedImage&#40;'my-photo.jpg', 'my-photo', 'my-photo.jpg '&#41;;  
 
$mail->Subject = "First PHPMailer Message"; 
$mail->Body = "Hi! \n\n This is my first <strong>e-mail</strong><img src="cid&#58;my-photo" alt="my-photo" />"; 
 
 
$mail->WordWrap = 50; 
 
if&#40;!$mail->Send&#40;&#41;&#41; &#123; 
echo 'Message was not sent.'; 
echo 'Mailer error&#58; ' . $mail->ErrorInfo; 
&#125; else &#123; 
echo 'Message has been sent.'; 
&#125; 
?> 
Τελευταία επεξεργασία από το μέλος Mandingueiro την 27 Φεβ 2009 20:47, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από cpulse » 12 Ιαν 2009 12:55

Ελπίζω μόνο όλα αυτά να μην έχουν να κάνουν με spam..

Χρησιμοποίησε την πέμπτη παράμετρο της AddEmbeddedImage() που ορίζει το mime type.

Κώδικας: Επιλογή όλων

$mail->AddEmbeddedImage&#40;'my-photo.jpg', 'my-photo', 'my-photo.jpg', 'base64', 'image/jpeg'&#41;;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από fafos » 17 Ιαν 2009 23:57

Re seis boys, exei lysei kanenas auto to provlhma ston Outlook teleutaias ekdoshs? exo dokimasei oles tis texnikes kai den peianei tipotis!! stous palioterous den exo problhma.. mhpos einai bug ton Vista+outlook new?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από cpulse » 18 Ιαν 2009 13:19

Ποιό πρόβλημα; Εννοείς οτι δεν σου βγάζει εικόνες;

Αν ναι για στείλε το source..

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Εικόνα σε email (όχι HTML). Πως;

Δημοσίευση από fafos » 18 Ιαν 2009 13:39

cpulse έγραψε:Ποιό πρόβλημα; Εννοείς οτι δεν σου βγάζει εικόνες;

Αν ναι για στείλε το source..
Nai gia tis embed eikones milao..
Vasika to palevo me to phplist gia na stelno newsletters.. ekana mia hakia pou edinan sta forums, doulepse pantou ektos tou neou outlook... to ekana kai me to phpmailer mia apo ta idia... to ekana kai me mia aplh mail function xrhsimopoiontas thn cid pali ta idia..

Den ksero an kano kapoia patatia alla deixnei san na mhn dexete tipota... an exeis kapoion aplo kodika pou na prosperna to mplokarisma tou outlook dekth..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης