Encodering e-mailberichten mislukt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Backend Developer

Wat kan je? .NET MBO, HBO, WO denkniveau Junior, Medior, Senior werkniveau 0-2, 2-5, 5+ jaar werkervaring Engels sprekend Wat krijg je? Vast € 2500 - € 5000 bruto per maand Flexibele werktijden Lunch Laptop Wat doe je? Minimaal een 32-urige werkweek Samenwerken met 10-20 collega's Je werkt samen met IT, Management, Sales, HR Focus op B2B Je werkt voornamelijk met De vacature Your role entails being at the start of developing our globally distributed network of fan engagement products. You will work in a team of highly skilled engineers that work closely on our new micro-service oriented platform. Our

Bekijk vacature »

Principal Low code Developer

Wat kan je? Infrastructuur, Frontend WO, Master denkniveau Lead werkniveau 5+ jaar werkervaring Nederlands sprekend Wat krijg je? Vast € 3000 - € 6000 bruto per maand Flexibele werktijden Lease auto Mobiel Laptop 13e maand Pensioen Netto onkostenvergoeding Wat doe je? Minimaal een 36-urige werkweek Samenwerken met 50+ collega's Je werkt samen met Management, IT Focus op B2B Je werkt voornamelijk met De vacature Als Principal Low code Developer combineer je de rol van IT consultant met die van applicatieontwikkelaar. Je gebruikt je technische expertise, platformkennis en ontwikkelervaring om in een multidisciplinair project of DevOps team kwalitatief hoogwaardige IT oplossingen

Bekijk vacature »

Java / Hippo developer

Functieomschrijving Ben jij een ervaren Java/Hippo ontwikkelaar en op zoek naar een internationale, creatieve en innovatieve omgeving? Wil jij werken in een divers applicatielandschap waar alle aspecten van het vakgebied van een developer aan bod komen, zodat je je volledig kan ontplooien? Bij Randstad Groep Nederland (HQ) zijn we op zoek naar jou! Wij zijn op zoek naar een Java/Hippo ontwikkelaar die per direct ons interne team komt versterken. Java/Hippo development bij Randstad Groep Nederland (HQ) Je komt te werken in het Online Search Experience team. Dit team werkt samen met de product owner aan onze web omgevingen van Randstad

Bekijk vacature »

Full Stack Developer / .NET

Bedrijfsomschrijving Deze organisatie is gesitueerd in de omgeving van Zwolle en is actief binnen de financiële dienstverlening voor klanten. Ze is actief op twee locaties, één in de Randstad en één in het Noordoosten van het land. Voor de locatie in de regio Zwolle, waar ongeveer 35 collega's werken, zijn zij op zoek naar een medior Full Stack Developer. Het betreft een dynamische omgeving waar collega's prettig en informeel met elkaar omgaan. De organisatie houdt zich grotendeels bezig met het ontwikkelen van financiële applicaties welke onder andere bestaan uit een CRM, DMS, diverse klantportalen en calculatie software. Als Full Stack

Bekijk vacature »

Java Developer - Overheid

Wil jij een bijdrage leveren aan de ontwikkeling van de digitale overheid en de maatschappelijke vraagstukken waar we met elkaar voor staan? Bel of Whatsapp met Mark Hartman via 06 29070400! Als Java ontwikkelaar houd jij je bezig met het realiseren van mooie en innovatieve oplossingen voor de Nederlandse overheid. • Hoe? Het ontwerpen en ontwikkelen met Java in een van onze complexe projecten. • Waarom? Om met jouw code het verschil te maken in het hart van de digitale overheid in Nederland. • Waar? Bij CGI in Rotterdam, dé IT-specialist op het gebied van digitale overheid. • Met wie?

Bekijk vacature »

Full Stack Developer Javascript Angular (JS)

Bedrijfsomschrijving Onze klant is een internationale organisatie in Rotterdam en heeft meerdere vestigingen wereldwijd. De IT afdeling in Rotterdam verzorgt diensten voor deze landen. Ter versterking van het team zijn zij op zoek naar een ervaren Full Stack Developer. De IT afdeling bestaat uit 3 systeembeheerders en 3 developers. Samen met 3 andere Developers ontwikkel je aan het ERP pakket. De organisatie is te omschrijven als no-nonsense, ondernemend en informeel. Naast de locatie in Nederland hebben ze verschillende locaties in het buitenland. Functieomschrijving Full Stack Developer Het onderhouden en verder inrichten van het ERP pakket middels Javascript, Angular (JS), SOAP,

Bekijk vacature »

.NET Webdeveloper

Wat kan je? .NET MBO, HBO, WO denkniveau Medior, Senior werkniveau 2-5, 5+ jaar werkervaring Nederlands sprekend Wat krijg je? Vast € 2800 - € 3800 bruto per maand Flexibele werktijden Lunch Laptop Pensioen Netto onkostenvergoeding Sporten Zorgverzekering Wat doe je? Minimaal een 32-urige werkweek Samenwerken met 20-50 collega's Je werkt samen met Klantenservice, Management, IT Focus op B2B Je werkt voornamelijk met De vacature Als .net developer houdt je je voornamelijk bezig met de ontwikkeling van grotere maatwerk .net websites en webapplicaties zoals productconfiguratoren, ERP systemen, e-commerce websites en hybrid mobiele apps. Je zet met behulp van moderne technieken

Bekijk vacature »

Full Stack Java Developer

Functieomschrijving Met jouw expertise zorg je als java developer voor de meest plezierige en efficiënte klant ervaring. Met jouw state-of-the-art-systemen verbeter je onze business en maak je echt impact! Want als je in ons tech team werkt, houd je jezelf en Nederland in beweging. Wij zijn continu bezig onze business en processen te optimaliseren, zodat we onze klanten en kandidaten meer gemak, snelheid en transparantie kunnen bieden. Impactvolle tech, daar doen we het voor. Artificial intelligence, machine learning en innovatieve zoek oplossingen. Zoek oplossingen? Yes! Solliciteren moet makkelijk en leuk zijn. Toch? Daar kan jij aan bijdragen! wat ga je

Bekijk vacature »

IT-traineeship Low Code Developer

Vind jij het leuk om veel contact te hebben met een klant en je te verdiepen in een domein? Lijkt het je interessant om enerzijds met de klant mee te denken, maar tegelijkertijd ook zelf een bijdrage te leveren aan de implementatie van een IT oplossing? Wij zijn op zoek naar starters die aan de slag willen als low-code engineer. In deze functie bouw je aan applicaties met behulp van een low-code platform, zoals Outsystems, Blueriq, Mendix of Pega. Dergelijke platformen stellen je in staat om snel een werkende applicatie te ontwikkelen en zijn hierdoor heel geschikt voor maatwerk projecten.

Bekijk vacature »

.NET developer

Bedrijfsomschrijving Als Senior .NET developer ga je werken in een DevOps team aan state-of-the-art oplossingen voor diverse opdrachtgevers. Denk hierbij aan het van scratch af aan bouwen van oplossingen, platformen, apps en andere portalen waar grote hoeveelheden data, AI en loT centraal staan. Zo is de organisatie onder andere bezig met het bouwen van een platform wat gebouwen middels tal van sensoren in kaart brengt en alles wat daarbij komt kijken. Zo kan iedereen in een opslag op een plattegrond zien welke ruimte bezet, gereserveerd of vrij is en wordt dit gekoppeld met andere diensten, bijvoorbeeld richting schoonmakers die weten

Bekijk vacature »

PHP Developer

Wat kan je? PHP HBO, WO denkniveau Medior, Senior, Lead werkniveau 2-5, 5-10, 10+ jaar werkervaring Nederlands, Engels sprekend Wat krijg je? Vast € 2500 - € 5000 bruto per maand Mobiel Laptop Netto onkostenvergoeding Wat doe je? Minimaal een 40-urige werkweek Samenwerken met 10-20 collega's Je werkt samen met Management, IT Focus op B2B & B2C Je werkt voornamelijk met De vacature We bouwen met het Eyecons team aan een OTT platform dat zowel Live als on demand sport content aanbiedt. Er liggen een aantal mooie uitdagingen in het verschiet, zoals het realiseren van een interactieve player experience waarbij

Bekijk vacature »

Frontend Developer

Wat kan je? Frontend MBO, HBO, WO denkniveau Medior, Senior, Lead werkniveau 2-5, 5-10, 10+ jaar werkervaring Nederlands sprekend Wat krijg je? Vast € 2500 - € 5000 bruto per maand Flexibele werktijden Lunch Lease auto Tankpas Mobiel Laptop 13e maand Pensioen Wat doe je? Minimaal een 32-urige werkweek Samenwerken met 10-20 collega's Je werkt samen met HR, Marketing, Management, IT Focus op B2B & B2C Je werkt voornamelijk met De vacature Als frontend developer bij Divotion ben je de technisch specialist die verantwoordelijk is voor de realisatie van serieuze (web)applicaties. Je bent daarnaast de verbinding tussen de creativiteit van

Bekijk vacature »

Software Developer .NET

Bedrijfsomschrijving Je komt te werken als Software Engineer bij een organisatie gespecialiseerd in de Automatisering voor klanten van hen in de productiebranche. Ze zijn ongeveer 100 man groot en je komt terecht in een development team van 7 man. De wens is om dit met een developer uit te breiden; iemand die al een aantal jaar ervaring heeft opgedaan en goed zelfstandig kan werken. Als .NET Developer is jouw taak om software te ontwerpen, dit te ontwikkelen en te testen. Op dit moment zijn er 3 junioren in het team, werken ze samen met 3 developers gevestigd in Roemenië en

Bekijk vacature »

PHP Developer

Wat kan je? PHP HBO, WO denkniveau Medior, Senior werkniveau 2-5, 5-10 jaar werkervaring Nederlands, Engels sprekend Wat krijg je? Consultancy € 2400 - € 5000 jaarlijks Flexibele werktijden Lease auto Tankpas Mobiel Laptop Pensioen Wat doe je? Minimaal een 36-urige werkweek Samenwerken met 20-50 collega's Je werkt samen met IT, Sales Focus op B2B Je werkt voornamelijk met Internet De vacature In deze diverse functie als PHP ontwikkelaar ben je verantwoordelijk voor de innovatie, realisatie en het beheer van de complexe informatiesystemen voor een van onze leuke klanten. Als developer achterhaal je proactief de behoeften en wensen van de

Bekijk vacature »

Python Developer Data Science

Bedrijfsomschrijving Onze klant biedt financiële dienstverlening aan organisaties binnen de non-profit sector. Hierbij kun je denken aan overheden en instellingen met een maatschappelijk belang. In vergelijking met andere financiële dienstverleners staan zij er bijzonder goed voor. De organisatie heeft een open cultuur met vrij korte lijnen. Daarnaast zijn duurzaamheid en betrouwbaarheid termen die de organisatie kenmerken. Ter uitbreiding van één van de IT teams zijn zij op zoek naar een Python Ontwikkelaar met interesse voor Data Science. Grote hoeveelheden data zijn kenmerkend voor het applicatie landschap, waarbij aan de finance kant hier complexe data, formules en wiskundige berekeningen komen kijken.

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

07/05/2021 09:57:07
 
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.