Php-поштаға қалай сурет салуға болады?

Суретті PHP пошта пішініне қалай салуға болады?

Менде бұл код:

$headers  = 'MIME-Version: 1.0' . "\n";
        $headers .='Content-Type: text/html; charset="UTF-8"'."\n";
        $headers .='From: [email protected]';       
        $image = "http://lcda.fr/site/abonnement/img/logo.png";
        //ecriture du message 

        $message .= '';
        $message .= '

Votre commande a bien été enregistrée sous le numéro/ Your command has been successfully recorded under the number : (ref - '.$_SESSION['refvb'].')

'; $message .= '<table width="500">'; $message .= '<tr><th colspan="2" align="left">Informations abonnement/ Subscription informations :</th></tr>'; $message .= '<tr><td width="250">Abonnement/ Subscription : </td><td>'.$infoabo['abo'].'</td></tr>'; $message .= '<tr><td>Durée/ Duration : </td><td>'.$infoabo['duree'].' an(s) </td></tr>'; $message .= '<tr><td>Quantité/ Quantity : </td><td>'.$infoabo['quantite'].'</td></tr>'; $message .= '<tr><td>Localisation/ Localisation : </td><td>'.$infoabo['zone'].'</td></tr>'; $message .= '<tr><td>Prix/ Price : </td><td>'.$infoabo['prix'].' €</td></tr>'; $message .= '<tr><td>Commencer l\'abonnement au prochain numéro/ Start the subscription in the next issue : </td><td>'.$startabo.'</td></tr>'; $message .= '</table>'; } $message .= '

Mode de paiement/ Payment : '.$mode; $message .= '

'; $message .= ''; //envoie du mail ini_set("sendmail_from",'[email protected]');

Бірақ сурет салмайды? Мұны істеудің басқа жолы бар ма? (суретте бейнеленген логотипті компанияны қою керек)

0

10 жауаптар

Кескінді электрондық поштада пайдаланылатын жалпыға қолжетімді URL мекенжайында орналастыру керек

Мысалға

$image = 'http://cdn.mydomain.tld/image.png';    

Жаңарту:

Swapnesh (онымен несие беру) ретінде, сіздің жолды біріктіру дұрыс емес (оның түзетуі қате болса да), сондықтан $ image жолы сіздің жолыңызда болмайды.

Сізге керек

// correct
$string = ''; //=> 

// wrong
$string = ''; //=> 

Жолыңыздағы қосымша ' белгілерін ескеріңіз. Сіз айнымалыны қосу үшін жолдан шыға алмайсыз және негізгі жол PHP интерполяция үшін оны бөлектемейді.

4
қосылды
Ия, бірақ сіздің кодыңыздың мысалында $ image URL мекенжайы URL мекен-жайына ғана кірмейді
қосылды автор fullybaked, көзі
Мүмкін, сұрақсыз мәселе, бірақ сіздің электрондық пошта клиентіңіз суреттерді бұғаттай алмай ма? Егер сіз электрондық поштаның көзін HTML деп қарастырсаңыз дұрыс болады.
қосылды автор fullybaked, көзі
Жауап беру үшін жаңартуды қараңыз
қосылды автор fullybaked, көзі
Дәл осы. Сондай-ақ, суретіңізге «alt» атрибутын қосу керек, себебі ол электрондық пошта провайдерлерінің көпшілігінде әдепкі бойынша жүктелмейді (барлығы?).
қосылды автор Cyrille Armanger, көзі
Иә, кешіріңіз .. Мен толық сілтеме болмағандықтан жұмыс істемейтінін есіме түсіргенде хат жаздым және оны толық сілтемемен көргім келеді, бірақ мен оны өзгертуді ұмытып қаламын .. Толық сілтемеде жұмыс істемейді. .
қосылды автор Alpha, көзі
Мен оны бірнеше электрондық поштаның хосттарында көргендіктен ойламаймын, бірақ иә, коды дұрыс көріп тұрмын және енді оны көретін «alt» атрибуты қосылдым ...
қосылды автор Alpha, көзі
Менде толық жол бар. Менде мына сілтеме бар: lcda.fr/site/abonnement/ img/logo.png
қосылды автор Alpha, көзі

$ Image айнымалы мәнінде толық URL жолын беруіңіз керек.

Бұл $ image = « http://yourdomain.com/images/image_name.ext »

3
қосылды

Электрондық поштадағы Absolute кескін жолын орнатыңыз.

Сондай-ақ, . дегенді алып тастаңыз, егер $ message бұрын жоқ болса -

$message = '';

Және иә,

$message = "";
2
қосылды
қате туралы хабарлауға арналған thh ...
қосылды автор swapnesh, көзі
@butfaked lol Мен мұны chking болдым stackoverflow.com/questions/14069231/… араласқан .... кейін downvote Мен кодты қарап, . қатесін таптым :)
қосылды автор swapnesh, көзі
@swapnesh сіздің ағымдағы редакцияңыз жұмыс істейтін болса да, ол жарамды HTML-кодты шығармайды, себебі ол URL кодын «
қосылды автор fullybaked, көзі
Бөлек бөлік ретінде ендірілген кескіндері бар көп бөлек электрондық поштаға әртүрлі мазмұн түрлерін пайдалану қажет. OP-тың мазмұны мәтін/html болып табылады. Тоқтатуды болдырмасаңыз да, өйткені сіз кодты түзетудің $ image үшін дұрыс емес екендігін дұрыс (және мен жіберіп алған жоқпын) көрсеттіңіз, бірақ оны түзетудің дұрыс емес екенін \
қосылды автор fullybaked, көзі
Егер мен мұны қалған болса, хаттың қалған бөлігін бұрап алмайсың ба?
қосылды автор Alpha, көзі

Кескіннің толық жолын пайдаланып көріңіз. сондықтан:

 www.example.com/site/images/link.png
1
қосылды
.Jpg файлын қолданып көріңіз, бұл .png
қосылды автор user2067005, көзі
Төменде келтірілген көріністі жасауға болады: $ image = ' lcda.fr/site/abonnement/img /logo.png' ;;
қосылды автор user2067005, көзі
Менде толық жол бар. Менде мына сілтеме бар: lcda.fr/site/abonnement/ img/logo.png
қосылды автор Alpha, көзі

Сіз сурет жолының абсолютті екенін және көруге тырысатын пайдаланушыға қол жетімді екенін тексеріңіз:

http://www.google.com/image.png

1
қосылды
Менде толық жол бар. Менде мына сілтеме бар: lcda.fr/site/abonnement/ img/logo.png
қосылды автор Alpha, көзі
Енді, $ image айнымалы мәнін келесіге орнатыңыз: $ image = lcda.fr/site/ abonnement/img/logo.png ;
қосылды автор Hugh Downer, көзі

Сіз оны шешкеніңізге қуаныштымыз. Тек басқа адамдарға жарық беру үшін: Баға қою мәселесі болды.

Бұл әрекеттердің бірі:

$message .= '';

In PHP, double and single quotes behave differently. When opening single quotes, everything will be taken as-is. So there will be no parsing of the variable $image. Hence inside your mail source code you will read: which of course can't work.

Айнымалы айнымалы деп танылсын десеңіз, айнымалы мәнге дейін бірыңғай баға белгілерін жабуыңыз керек. Бұл мүмкіндік:

$message .= '';

Мұнда PHP ешқандай талдауларды жасамайды, тек қос тырнақшаларда, яғни қос тырнақшаларды (ақылды бөлік) қоса алғанда, бәрін деп жазады, содан кейін біз дәйексөзді және PHP параллельді қайтадан қалдырамыз, сондықтан айнымалы және оның мазмұнын қосады. Содан кейін (біз қайтадан бір рет тырнақшаны енгізгенде) PHP барлық ішінен, қос тырнақшаны қоса алғанда, жазады. Сондықтан қалағаныңызды аласыз:


(Бірінші нұсқадағы айырмашылықты ескеріңіз:

$message .= '';

where you also do not close the single quotes before the variable. So in this case in your mail source code you will read: )

Мұның бәрі біраз қиын, өйткені қос айнымалыларының айнымалыларын тырнақшаның ішіндегі PHP арқылы талдайды. Алайда, сіздің жолыңыздың бір бөлігі ретінде шығып қос тырнақшалар қажет болса, бұл өте күрделі болуы мүмкін және жалғыз тырнақшалар (әлдеқайда қатал) түсіну оңай болуы мүмкін .

Бұл көмектеседі деп үміттенемін Сәлемдесу! oe

1
қосылды

Шешімді шешті.

Кескініңіздің бұлай болуы мүмкін:

$image = 'http://lcda.fr/site/abonnement/img/logo.png';
0
қосылды

$ Суретіңізде абсолютті url болуы керек;  Төмендегі кодты көріңіз;

    $headers  = 'MIME-Version: 1.0' . "\n";
    $headers .='Content-Type: text/html; charset="UTF-8"'."\n";
    $headers .='From: [email protected]';       
    $image = "http://framework.zend.com/images/head-bottom-picture.png";
    //ecriture du message 

    $message .= '';
    $message .= '

Votre commande a bien été enregistrée sous le numéro/ Your command has been successfully recorded under the number : (ref - '.$_SESSION['refvb'].')

'; $message .= '<table width="500">'; $message .= '<tr><th colspan="2" align="left">Informations abonnement/ Subscription informations :</th></tr>'; $message .= '<tr><td width="250">Abonnement/ Subscription : </td><td>'.$infoabo['abo'].'</td></tr>'; $message .= '<tr><td>Durée/ Duration : </td><td>'.$infoabo['duree'].' an(s) </td></tr>'; $message .= '<tr><td>Quantité/ Quantity : </td><td>'.$infoabo['quantite'].'</td></tr>'; $message .= '<tr><td>Localisation/ Localisation : </td><td>'.$infoabo['zone'].'</td></tr>'; $message .= '<tr><td>Prix/ Price : </td><td>'.$infoabo['prix'].' €</td></tr>'; $message .= '<tr><td>Commencer l\'abonnement au prochain numéro/ Start the subscription in the next issue : </td><td>'.$startabo.'</td></tr>'; $message .= '</table>'; } $message .= '

Mode de paiement/ Payment : '.$mode; $message .= '

'; $message .= ''; //envoie du mail ini_set("sendmail_from",'[email protected]');
0
қосылды

Сілтемемен тікелей «img» тегіне қойсам, ол жұмыс істейді. Рахмет

0
қосылды

Басқа жауаптар негізінде келесі әрекеттерді жасадым:

$comments .= "
logo
";
$comments .= $mail; /*message posted from textarea box on associated htmlpage.*/
$sent = mail($tosubscriber,$subject,$comments,$headers);
0
қосылды