Gå til innhold

Mail attachment problemer etter serveroppgradering


Anbefalte innlegg

Videoannonse
Annonse
har denne mail_attachment funksjonen, men etter en serveroppgadering av php funker ikke denne lengre, noen som vet hva som feiler?

 

http://www.pastebin.ca/1068020

Denne virket før?

Serveroppgradering av PHP (antar eg) fra til versjon?

Endret php systeminnstillinger?

Klarer du å sende epost uten attachments?

Får du feilmeldinger?

Blir mail sent men kommer frem tom eller annet?

 

1. Ja

2. Tidligere php: PHP 5.1.6 - Ny php: PHP 5.2.1

3.

4. Ja

5. Nei

6. Mail med attachements blir ikke sendt i det hele tatt, mail funksjonen returnerer false

 

Har kommet såpass frem til at headeren på mail med attachments i PHP 5.2.1 må være annereledes enn mail med attachments i PHP 5.1.6

Lenke til kommentar

Du har to linjeskift etter hver header. Dette er feil, og må rettes opp i. Gyldig formatering av headere og mail i en MIME/multipart-mail er:

Header: Header
 Header: Header

 --delimiter
 Header: Header
 Header: Header

 Innhold

 --delimiter--

Et eksempel på output fra min mail-klasse:

To: [email protected]
Subject: =?utf-8?Q?Subject?=
From: Avsender <[email protected]>
X-Mailer: PHP/Russ.no
Content-Type: multipart/alternative; boundary="$Russ.no$486e2d8c117f22.86502648$"
MIME-Version: 1.0

--$Russ.no$486e2d8c117f22.86502648$
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=utf-8

Denne teksten vises for klienter som kun viser ren tekst.

--$Russ.no$486e2d8c117f22.86502648$
Content-Type: multipart/related; boundary="$Russ.no$486e2d8c118383.98470204$"
MIME-Version: 1.0

--$Russ.no$486e2d8c118383.98470204$
Content-Transfer-Encoding: base64
Content-Type: text/html; charset=utf-8

Base64-kodet HTML

--$Russ.no$486e2d8c118383.98470204$
Content-Transfer-Encoding: base64
Content-Type: image/png
Content-Disposition: attachment; filename="logo.png"
Content-ID: logo.png

Base64-kodet bilde. Kan refereres til i HTML ved å bruke <img src="cid:logo.png">

--$Russ.no$486e2d8c118383.98470204$--
--$Russ.no$486e2d8c117f22.86502648$--

Endret av Lokaltog
Lenke til kommentar

Lokaltog: Hm, oppdaterte koden til å ligne mere på din, ser slik ut nå:

 

http://www.pastebin.ca/1068945

 

Mailen blir sendt, men den blir seendes slik ut (strippet for privat inf):

 

				To: [email protected]
			Subject: =?utf-8?Q?Subject?=
			From: [email protected]
			Reply-To: [email protected]
			X-Mailer: PHP/5.2.1
			Content-Type: multipart/alternative; boundary="fb8e1a894ca0a8b10b291a9b4734b72b"
			MIME-Version: 1.0

			--fb8e1a894ca0a8b10b291a9b4734b72b
			Content-Transfer-Encoding: quoted-printable
			Content-Type: text/plain; charset=utf-8

			melding fra bruker



			--fb8e1a894ca0a8b10b291a9b4734b72b
			Content-Type: multipart/related; boundary="fb8e1a894ca0a8b10b291a9b4734b72b"
			MIME-Version: 1.0

			--fb8e1a894ca0a8b10b291a9b4734b72b
			Content-Transfer-Encoding: base64
			Content-Type: text/html; charset=utf-8

			Base64-kodet HTML

			--fb8e1a894ca0a8b10b291a9b4734b72b
			Content-Transfer-Encoding: base64
			Content-Type: image/png
			Content-Disposition: attachment; filename="filnavn.jpg"
			Content-ID: filnavn.jpg

			Base64-kodet bilde. Kan refereres til i HTML ved å bruke <img src="cid:<EN HEL DRØSS MED 64 KODE>>

			--fb8e1a894ca0a8b10b291a9b4734b72b--

			--fb8e1a894ca0a8b10b291a9b4734b72b--

Ikke bra, hehe. Hm, skal jeg flytte på noe her?

Lenke til kommentar

Det er et par problemer med koden din. For det første må hver eneste seksjon i en MIME-mail ha en unik delimiter. Du bruker samme delimiter i hele mailen, og det blir feil. I tillegg har du rappet headerne rett fra koden min (ikke noe galt med det), men du har jo ikke kodet teksten og innholdet i mailen riktig. Du har heller ikke delt den opp riktig, og det virker ikke som om du skjønner hva du faktisk har gjort. Du har også lagt inn masse tabulatorer i headerne, som heller ikke funker. Whitespace før headere = fy-fy.

 

Du kan helt sikkert fint bruke koden din fra det første scriptet ditt, men fiks på headerne slik at du ikke putter inn doble linjeskift der: http://www.pastebin.ca/1068957

Lenke til kommentar

Ser ut som lokaltog har en forståelse for koden din.

 

Personlig så bruker eg frameworks der eg kan.

Så hvis du vil gjøre det enkelt...

 

<?php
require_once 'Zend/Mail.php';
$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setBodyHtml('My Nice <b>Test</b> Text');
$mail->setFrom('[email protected]', 'Some Sender');
$mail->addTo('[email protected]', 'Some Recipient');
$mail->setSubject('TestSubject');

$at = $mail->createAttachment($myImage);
$at->type		= 'image/gif';
$at->filename	= 'test.gif';

$mail->send();

 

http://framework.zend.com/manual/en/zend.mail.html

http://framework.zend.com/manual/en/zend.m...ttachments.html

http://framework.zend.com/manual/en/zend.m...html-mails.html

Lenke til kommentar

Du surrer fortsatt fælt. Du må ikke bruke eksempel-greia jeg la ut i sta. Det er en random mail jeg har sendt ut, med et bildevedlegg, en HTML-bit og en tekstbit. Prøv heller å modifisere funksjonen du allerede har, istedenfor å teste om mailen jeg la ut funker (den funker sannsynligvis ikke til ditt opplegg uansett). Har du prøvd den modifiserte versjonen av scriptet ditt som jeg la ut i sta?

 

Ellers støtter jeg meg til OISNOT når det gjelder bruk av ferdige rammeverk eller klasser for slike formål. Det er greit å bruke et hjemmesnekret opplegg hvis du vet hva du driver med, men hvis du kun trenger å sende mail og ikke gjør dette for å øve deg i PHP bør du bruke et opplegg som noen som kan PHP har laget og testet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...