Encodering e-mailberichten mislukt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Front-end developer

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

Bekijk vacature »

.NET Developer C#

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken Als C# .NET Developer wordt je verantwoordelijk voor het ontwikkelen van applicaties voor belangrijkste product van deze organisatie. Dit product is een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Er

Bekijk vacature »

Als Lead PHP developer bijdragen aan het onderwijs

Functie Als Lead PHP developer zet je samen met het team en de andere lead developers de technische lijnen uit als het gaat om het ontwikkelen van de applicaties en bepaal je samen met de PO waar elke sprint aan gewerkt zal worden. Je kunt op basis van een user story een goede aanpak formuleren en een planning opstellen, en andere hierin meenemen. Wanneer je team code schrijft verwacht je degelijke oplossingen, bij voorkeur gebruik makend van Domain Driven Design. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit

Bekijk vacature »

.NET developer

Functie Voor jou als junior .NET ontwikkelaar staat er een flinke uitdaging klaar bij dit bedrijf waar jij veel van kan gaan leren. Zo willen zij een flinke uitbreiding doen op het webbased gedeelte dat zij nu hebben en willen zij het standaard deel gaan moderniseren. Jouw team is dan ook op zoek naar een junior .NET ontwikkelaar die het leuk vindt om op basis van research en development aan de slag te gaan. Jouw mening telt mee als het gaat om hoe en met wat deze applicaties gebouwd en herschreven gaan worden. Jouw functie bij dit bedrijf gaat dan

Bekijk vacature »

Front-end Developer

Dit ga je doen Doorontwikkelen van software; Ontwikkelen en testen van nieuwe functionaliteiten; Implementaties van nieuwe functionaliteiten en updates; Verzorgen van technische migraties naar nieuwe frameworks; Verwerken van incidenten. Hier ga je werken Onze klant, gevestigd in de regio Amsterdam, draagt bij aan het verbeteren van de veiligheid en efficiëntie van de Nederlandse infrastructuur door het ontwikkelen van afgemeten software oplossingen. Zo passen zij location intelligence toe om onderhoud en reparaties efficiënt te laten verlopen. Verder zorgen deze systemen dat incidenten zo snel mogelijk worden opgelost. Als Front-end Developer ben jij samen met je team betrokken met het (door)ontwikkelen van

Bekijk vacature »

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

Bekijk vacature »

.Net ontwikkelaar - Het schoolsysteem verbeteren!

Bedrijfsomschrijving Onze klant is een prettige en kleinschalige organisatie waar hard gewerkt wordt om het onderwijs te verbeteren. Daarom werken ze aan complexe om administratieve, financiële en facilitaire processen te versnellen en te verbeteren. Dit doen ze vanuit een platte organisatie voor klanten die door geheel Nederland verspreid zitten, hier horen vanzelfsprekend een aantal aansprekende HBO scholen en universiteiten toe. Functieomschrijving Je komt terecht in een organisatie waar op dit moment 2 scrumteams werken. Jij zal als .Net developer binnen 1 van deze scrumteams functioneren, iedereen binnen dit team heeft zijn/haar eigen expertise waardoor er met verschillende invalshoeken aan een

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Frontend Developer Vue Nuxt HBO Javascript

Samengevat: Deze werkgever levert elke dag betere digitale gebruikerservaringen. Ben jij geschikt als frontend Developer? Heb je ervaring met Vue en Nuxt? Vaste baan: Front-End Developer HBO €3.100 - €4.600 Zij bieden opdrachtgevers een complete dienstverlening op gebied van ontwerpen en ontwikkelen van websites, zoekmachine optimalisatie, online adverteren, content marketing en conversie verbetering. Zij werken met een eigen ontwikkeld CMS. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Deze werkgever staat open voor elke nieuwe trend. Onze systemen zijn groot

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP / Laravel developer zal je in een klein team terecht komen. Wij zijn op zoek naar een echte specialist, iemand die de balans weet te vinden tussen techniek en perfectie. In de aankomende jaren wilt dit bedrijf flink groeien en daarom zijn ze op zoek naar jou! Wat ga je doen? Je draagt bij aan het ontwikkelen en onderhouden van bestaande webapplicaties die boordevol functionaliteit zitten. Deze applicaties worden gebruikt door de organisatie zelf en ook door de klanten. Inmiddels wordt er gewerkt met Laravel 8 en zijn er diverse koppelingen naar externe leveranciers. Verder zal

Bekijk vacature »

Python Developer

Dit ga je doen Als Python Developer ben je verantwoordelijk voor: Het ontwikkelen van Stuurprogramma's in Python zodat er verbindingen kunnen worden gelegd tussen besturingssystemen en (AV) hardware; Het testen en debuggen van Stuurprorgamma's; Het communiceren met noodzakelijke partijen in gevallen waar extra technische details nodig zijn om een Stuurprogramma te ontwikkelen of problemen op te lossen; Het maken van de nodige technische documentatie (in het Engels); Het participeren in een Scrum/Agile omgeving. Hier ga je werken Deze internationale organisatie is wereldwijd een succesvol producent en leverancier van professionele AV hard- en software. Klanten gebruiken de producten o.a. voor het

Bekijk vacature »

Senior Applicatie ontwikkelaar Java

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving We verwachten van je,

Bekijk vacature »

Als Front-end developer werken aan apps voor het o

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Magento developer

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »
George van Baasbank

George van Baasbank

16/10/2014 13:14:59
Quote Anchor link
Goedemiddag allemaal,

Nu ik mijn e-mailverzending op orde heb met meervoudige bijlagen, is het nu zover dat ik de bijlagen wil gaan openen. Helaas, dat lukt niet. Ik krijg een melding dan mijn codering niet juist is (gegaan).
Welke regel in onderstaande code verzorgt dit?

Voor de goede orde heb ik de inhoud van variabele $body even vastgelegd:

De waarde van $body:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
This is a multi-part message in MIME format. --==Multipart_Boundary_x24ee641efc4abab68a14a09f2c009eacx Content-Transfer-Encoding: 7bit
Test met twee bijlagen


 


Nee geen twee maar een

--==Multipart_Boundary_x24ee641efc4abab68a14a09f2c009eacx Content-Type: application/pdf; name=20130108_Voorwaarden_deelname_KPN_Compleet_v1_1_def.pdf Content-Transfer-Encoding: base64 Content-disposition: attachment This is a multi-part message in MIME format. --==Multipart_Boundary_x24ee641efc4abab68a14a09f2c009eacx Content-Transfer-Encoding: 7bit
Test met twee bijlagen


Mijn PHP-code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
$html
= true;
            $headers     = 'From: ' . $cAfzenderEmail . PHP_EOL;
            $headers    .= 'Reply-To: ' . $cAfzenderEmail . PHP_EOL;
            $headers    .= 'X-Mailer: PHP/' . phpversion() . PHP_EOL;
            $headers    .= 'X-Priority: Normal' . PHP_EOL;
            $headers    .= ($html) ? 'MIME-Version: 1.0' . PHP_EOL : '';
            //email bestaat uit meerdere  bestanden dus vertel wat de scheidings teken is en dat het een multipart is
            $headers .= "Content-Type: multipart/mixed; boundary=\"" . $mime_boundary . "\"\r\n";
            //we zenden een attachment mee
            $headers .= "Content-Disposition:  attachment\r\n";
            $nAfteller = 0;
            while($nAfteller <= $nBijlagen) {
                //readfile
                //$fp = fopen($_FILES['bijlage']['tmp_name'],'r');

                $fp = fopen($_FILES['bijlage']['name'][$nAfteller]);
                $bestand = fread($fp,$_FILES['bijlage']['size'][$nAfteller]);
                fclose($fp);
                //create body
                //generenen een body. Dit is een multi part gezeik

                $body.= "This is a multi-part message in MIME format.\r\n";
                $body.= "\r\n";
                //boundary
                $body.= "--" . $mime_boundary . "\r\n";
                //content type + charater set (iso in dit geval)
                //$body .= ($html) ? 'Content-type: text/html; charset=UTF-8' . PHP_EOL : '';
                //codering (7 bit)

                $body.= "Content-Transfer-Encoding: 7bit\r\n";
                $body.= "\r\n";
                //het bericht
                $body.= nl2br($_POST['editor1']) ."\r\n";
                //boundary
                $body.= "--" . $mime_boundary . "\r\n";
                //content type + naam bestand (database.sql)
                //$body .= "Content-Type: application/octet-stream; name=".$_FILES['bijlage']['name'][$nAfteller]."\r\n";

                $body .= "Content-Type: " . MimeExtensie($_FILES['bijlage']['name'][$nAfteller]) . " name=" . $_FILES['bijlage']['name'][$nAfteller] . "\r\n";
                //codering
                $body .= "Content-Transfer-Encoding: base64\r\n";
                //als bijlage toegevoegd
                $body.= "Content-disposition: attachment\r\n";
                $body .= "\n";
                $body .= chunk_split(base64_encode($bestand )) . "\r\n";
                $nAfteller++;
                echo $body;
            }

?>
 
PHP hulp

PHP hulp

28/03/2024 18:28:58
 
Obelix Idefix

Obelix Idefix

16/10/2014 13:23:45
Quote Anchor link
Waarom het wiel opnieuw willen uitvinden en telkens tegen problemen aanlopen?

In http://www.phphulp.nl/php/forum/topic/emailbericht-met-meerdere-bijlagen/96114/last/ is ook al gevraagd waarom geen gebruik maken van phpmailer of swiftmailer?

Je reactie daar, dat het niet kan, begrijp ik nog steeds niet. Of je nu zelf de mailfunctie van php aanroept of via een class. Voordeel van laatste is echter dat veel problemen waar jij nu tegen aan loopt al opgelost zijn.
 
George van Baasbank

George van Baasbank

20/10/2014 10:59:25
Quote Anchor link
Hallo allemaal,
Ik heb het advies opgevolgd om ded class van phpmailer te installeren. Het verzenden van meerdere bijlagen gaat nu goed alleen zijn deze bijlagen niet te openen vanwege een decoderingsfout. Dat had ik in eerste instantie ook.
Omdat ik in de code van phpmailer niets zie over het decoderen van bepaalde typen bestanden loop ik even vast.
Is er iemand die mij verder kan helpen?


George
 
Ivo P

Ivo P

20/10/2014 11:18:01
Quote Anchor link
zou het dan niet handig zijn, om even te vragen hoe de gemakkelijk oplossing dan wél moet?

Om in het wiel uitvinden te blijven:

Er is je aangeraden om een wiel te gebruiken dat al uitgevonden was. Dat probeer je maar mogelijk omdat je het puntje: pomp de band op" overgeslagen hebt, wil je weer geheel terug?

Met phpmailer zou het voldoende zijn om

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$mailer
= new phpmailer();

$mailer->AddAttachement('path/naar/file1.pdf');
$mailer->AddAttachement('path/naar/file2.pdf');
?>


te doen.

Hoe doe jij het?
 
George van Baasbank

George van Baasbank

20/10/2014 11:29:25
Quote Anchor link
Ivo,

Mijn code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
require_once "plugins/mailer/class.phpmailer.php";

$aBijlage = array();
$aBijlage = $_FILES['bijlage']['name'];
$nBijlagen = count($aBijlage);  // Tellen aantal bijlagen

$cGeadresseerde = $_SESSION['inlognaam'];
$cAfzenderEmail = $_SESSION['inlognaam'];

// Start de class van phpmailer
        
$mail = new PHPMailer();
$body = $cEmailbericht;
$body = eregi_replace("[\]",'',$body);
$mail->AddReplyTo($cAfzenderEmail,"");
$mail->SetFrom($cAfzenderEmail, "");
$address = $cGeadresseerde;
$mail->AddAddress($address, "");
$mail->Subject = $cOnderwerp;
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML($body);
$nAfteller = 0;
while($nAfteller < $nBijlagen) {    // Hier voeg ik de bijlagen toe !!
   $mail->AddAttachment($_FILES['bijlage']['name'][$nAfteller]);  // attachment
   $nAfteller++;
}

        
if(!$mail->Send()) {
   echo "Mailer Error: " . $mail->ErrorInfo;
}
else {
   echo "Message sent!";
}

?>


Toevoeging op 20/10/2014 11:57:10:

Sorry, ik had een klein foutje over het hoofd gezien.
Helaas krijg ik nu geen bestanden meer mee:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
while($nAfteller < $nBijlagen) {
            $mail->AddAttachment($_FILES['bijlage']['name'][$nAfteller]);  // attachment
            echo $_FILES['bijlage']['name'][$nAfteller];
            $nAfteller++;
        }

        
        $mail->Send();
?>


Deze echo toont wel de juiste bestandsnamen alleen worden zij niet bijgesloten in de mail.
(De echo staat er alleen voor foutlokalisatie)
Gewijzigd op 20/10/2014 11:37:07 door George van Baasbank
 
Ivo P

Ivo P

20/10/2014 12:06:38
Quote Anchor link
$_FILES['bijlage']['name'][$nAfteller]

dat zal niet bestaan.
Daarin tref je de naam aan die de file voor het uploaden had bij de bezoeker van de site.

$_FILES['bijlage']['tmp_name'][$nAfteller] zal beter gaan.


---
$body = eregi_replace("[\]",'',$body);

Je replacet dus case-ongevoelig een \ ?

ten eerste ken ik geen hoofdletter \
ten tweede zou str_replace() genoeg zijn
en tenslotte, zou je je even af moeten vragen waarom er kennelijk overtollige \ voor kan komen in je bericht...

je emuleert hier strip_slashes() en dat is een functie die je nooit nodig moet hebben
 
George van Baasbank

George van Baasbank

20/10/2014 12:15:49
Quote Anchor link
Ivo,
Het gaat steeds beter. Ik krijg na jouw opmerking wel bestanden binnen maar die hebben een totaal andere nam: phpHnau87.dat. Dat zal de tmp-name wel zijn maar hoe krijg ik dat weer goed?
P.S.: De "$body = eregi_replace("[\]",'',$body);" heb ik verwijderd

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
while($nAfteller < $nBijlagen) {
            $mail->AddAttachment($_FILES['bijlage']['tmp_name'][$nAfteller]);  // attachment
            //echo $_FILES['bijlage']['name'][$nAfteller];

            $nAfteller++;
        }

?>
 
Ivo P

Ivo P

20/10/2014 12:25:01
Quote Anchor link
zoek even wat de andere parameters van AddAttachment zijn.....

http://phpmailer.worxware.com/?pg=tutorial
ongeveer op de helft
Gewijzigd op 20/10/2014 12:26:57 door Ivo P
 
George van Baasbank

George van Baasbank

26/10/2014 15:28:25
Quote Anchor link
Bedankt allemaal voor de ondersteuning.
Met de volgende code (PHPMailer) is alles gelukt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// Start PHPMailer  
$mail = new PHPMailer();
$mail->IsHTML(true);
$body = $cBericht2;
$mail->AddReplyTo($cAfzenderEmail,"");
$mail->SetFrom($cAfzenderEmail, "");
$address = $cGeadresseerde;
$mail->AddAddress($address, "");
$mail->Subject = $cOnderwerp;
$mail->AltBody = "Om dit bericht te kunnen lezen is een HTML-compatibel browser nodig!";
$mail->MsgHTML($body);
$nAfteller = 0;
while($nAfteller < $nBijlagen) {
   $mail->AddAttachment($_FILES['bijlage']['tmp_name'][$nAfteller],$_FILES['bijlage']['name'][$nAfteller]);    // Voeg attachment toe
   $nAfteller++;
}

                    
$mail->Send();
// Einde PHPMailer
?>


De oplossing in AddAttachment was dus heel simpel

Topic gesloten

George
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.