Encodering e-mailberichten mislukt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior/medior Back end developer PHP, Laravel

Functie Jij als ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor veel van je tijd je bezig houden met het ontwikkelen van maatwerk features en applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. Jij als full stack developer zult dus

Bekijk vacature »

Senior Airport Developer ( System engineer)

De functie Nice to know (you) De nieuwe A-pier wordt de duurzaamste van Schiphol. Als deze af is ligt er 4000 vierkante meter zonnepanelen op het dak. En de toiletten? Die spoelen door met regenwater. we gaan ervoor: het creëren van de meest duurzame en hoogwaardige luchthavens ter wereld. een toekomstbestendig en duurzaam Schiphol. Daar werken we elke dag hard aan in team Development & Sustainability. Jij bent regisseur, expert én aanjager van de ontwikkeling van Schiphol. Connecting your world Hoe maak je de ambities en doelstellingen van Schiphol concreet in een project? De waarde voor Schiphol naar eisen die

Bekijk vacature »

Database Developer

Functieomschrijving Wat ga je doen? Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te voeren, maar het is ook prettig als je in de omgeving van Tilburg woont om naar het kantoor te kunnen komen. Vind jij het leuk om jouw creatieve vaardigheden te benutten om complexe systemen te ontwikkelen? Lees dan snel verder! Bedrijfsprofiel Voor wie

Bekijk vacature »

Laravel Developer

Functie omschrijving Voor een gave organisatie in de buurt van Den Bosch zoek ik een PHP developer. Het is van belang dat je kennis/ervaring hebt met het framework Laravel. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Andere taken zijn onder andere: documentatie schrijven over applicaties/uitleg geven over software en applicaties/ klantcontact over bestaande applicaties/applicaties optimaliseren. Bedrijfsprofiel Deze organisatie zit in de regio van Den Bosch en is een klein bedrijf. Er werken circa

Bekijk vacature »

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het development team. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met

Bekijk vacature »

PHP Developer

Als PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen pure PHP code schrijven. Samenwerken met de klantreiziger om onze klanten

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Als Front-end developer bijdragen aan het onderwij

Functie Als front-end developer om je terecht in een team van goede en ervaren developers, en ga je werken aan de software die door miljoenen mensen gebruikt wordt. Je bent in staat om designs effectief te vertalen naar werkende feautures en hebt oog voor een goede UX van het product. Je staat voor clean code en goede documentatie. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit software en code. Je dagelijkse werk bestaat uit het werken aan componenten in de Storybook. Het verbeteren en refactoren van de huidige

Bekijk vacature »

Senior Product Developer

Functieomschrijving Als senior Product Developer ben je verantwoordelijk voor bestaande mobiliteitsproducten en de ontwikkeling van nieuwe mobiliteitsconcepten. Met behulp van diverse klantonderzoeken, klantsessies en salesmeetings zorg je ervoor dat je de veranderende mobiliteitsbehoeften in de markt kent. Hier speel je op in door innovatieve, flexibele, efficiënte en duurzame vervoersoplossingen te bedenken, te ontwikkelen, te implementeren en uiteindelijk samen met Sales en Marketing collega’s in de markt te zetten. Je initieert en neemt deel aan (internationale en afdeling overschrijdende) projecten, vaak in de rol van projectleider. In die rol bewaak je de voortgang, coördineer je de activiteiten en zorg je voor

Bekijk vacature »

Front-end developer Supply Chain Angular, ReactJS,

Functie Het development team bestaat momenteel uit 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creëren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld meedenken over strategie en design. Hierin krijg je veel vrijheid om de functie naar eigen inzicht in te vullen en te pionieren. Alle data die wordt gebruikt is zichtbaar in een webapplicatie, geschreven in Angular en React. Momenteel zijn ze bezig om de dashboards anders vorm te geven en de

Bekijk vacature »

Senior .NET developer

Functie Als Senior .NET ontwikkelaar ga jij aan de slag in ons Research & development team. Ons team bestaat uit 17 collega’s! Wij zijn momenteel druk bezig met het opzetten van een geheel nieuwe architectuur voor een nieuw product. Hierbij maken wij o.a. gebruik van VS2022 en .NET 6.0. Jouw functie is dan ook voornamelijk backend georiënteerd bij ons. Aangezien wij meetapparatuur ontwikkelen voor de chemische industrie is het ook erg belangrijk om kwalitatief hoogwaardige software te ontwikkelen voor de besturing hiervan. Verder ben jij verantwoordelijk voor het designen, implementeren en testen van nieuwe features. Ook zorg jij voor toekomstbestendige

Bekijk vacature »

Back End Developer .NET

Dit ga je doen Ontwikkelen in C# .NET en werken aan nieuwbouw, uitbouw en onderhoud van de software (die communiceren met 68.000 sensoren, waardoor er meerdere miljoenen berichten per uur verwerkt worden); Samenwerken in Scrum Teams; Meewerken aan verschillende, uitdagende projecten; Werken met nieuwe technologieën en vrijheid krijgen om jezelf te ontwikkelen en door te groeien. Hier ga je werken Je komt als Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct

Bekijk vacature »

Software Developer .NET

Functie omschrijving .NET developer gezocht! Wij zoek op zoek naar een .NET Developer die zich niet uit het veld laat slaan voor een software bedrijf in de regio Veenendaal. Je gaat in deze functie aan de slag met het door ontwikkelen van bestaande producten en het ontwikkelen van nieuwe producten. Dit bedrijf ontwikkeld SaaS applicaties die zowel intern als extern gebruikt worden. Verder bestaat je functie uit: Het ontwikkelen en bouwen van webapplicatie, mobiele applicaties en websites vallen onder jouw verantwoordelijkheden; Werken met onder andere .NET, C#, HTML/CSS, Javascript en MSSQL/Oracle Databases; Hierin werk je samen met andere developers en

Bekijk vacature »

Senior Front end developer Angular

Functie Er zijn momenteel 5 SCRUM-teams waarvan drie gefocust zijn op DevOps en de huidige projecten en twee op innovatie van de platformen. Jij zal onderdeel worden van het innovatie Scrum team. De 2 multidisciplinaire innovatie teams bestaan momenteel uit 14 werknemers. Jij als senior Front end developer wordt onderdeel van onze innovatieteams. De innovatieteams houden zich bezig met het door ontwikkelen van de huidige producten en denken na over nieuwe functionaliteiten. Binnen de rol van Front end developer krijg je veel vrijheid en kan je je dag zelf indelen. Dingen waar jij je dagelijks mee bezig zult houden is

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 22:33:04
 
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.