Mail met opmaak versturen probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tobias Tobias

Tobias Tobias

24/07/2013 13:21:14
Quote Anchor link
Hallo,

Ik probeer een systeem te maken waarmee ik online een mailbericht kan maken en deze kan versturen. De bedoeling is dat de mail een html-opmaak heeft met bijvoorbeeld een logo rechtsbovenin etc.

Het maken van de mailtjes lukt wel, met behulp van swiftmailer.
Wat niet lukt is de juiste opmaak. In verschillende mailboxen (outlook, hotmail, mail van mijn werk) ziet het bericht er steeds anders uit. In sommige gevallen worden alle divs gewoon rechts uitgelijnd, in sommige gevallen worden de afbeeldingen niet geladen, etc.

Wat doe ik verkeerd, en wat is eventueel een bestaande oplossing die wel goed werkt?
Dit is 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
$mail
= '[email protected]';
$kop = 'kop van het bericht';

$bericht = '

<style>

body {
background-color:#F3F781;
color: #000000;
font-family: Verdana;
font-size: 10pt;
}
                
#bericht {
width: 600px;
margin: 0 auto;
margin: 10px;
background-color:  #EEFFFF;
color: #036;
border: 1px solid #036;
border-radius: 5px;
padding: 5px;
clear: both;
}

#logo1{
float:right;
width:150px;
}

#logo2{
float:left;
width:150px;
}

</style>

<div id="bericht">
<div id="logo1"><img src="logo1.png" width=150px /></div>
"Sed ut perspiciatis unde
omnis iste natus error sit
voluptatem accusantium doloremque
laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
<div id="logo2"><img src="logo2.png" width=150px /></div></div>'
;

$van = 'afzender';
$naam_van = "naam afzender";
    
require_once '../lib/swift_required.php';

$transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs');
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance($kop)
  ->
setFrom(array($van => $naam_van))
  ->
setTo(array($mail))
  ->
addPart($bericht, 'text/html')
  ;

$message->attach(Swift_Attachment::fromPath('logo1.png'));
$message->attach(Swift_Attachment::fromPath('logo2.png'));
$result = $mailer->send($message);
?>
Gewijzigd op 24/07/2013 13:21:58 door Tobias Tobias
 
PHP hulp

PHP hulp

17/05/2024 15:05:56
 
Danny L

Danny L

24/07/2013 13:24:22
Quote Anchor link
Dit probleem had ik eerst ook, je moet gewoon de style in de tag van het element doen, dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<div style="border: 1px solid #000 etc etc">Mijn content</div>
 
- SanThe -

- SanThe -

24/07/2013 13:27:24
Quote Anchor link
Je gebruikt geen correcte html.
 
Tobias Tobias

Tobias Tobias

24/07/2013 13:29:07
Quote Anchor link
@Danny: Ik zal het eens proberen

@Sante: Bedoel je dat ik ook de <html> en <body>-tags moet gebruiken?
 
- SanThe -

- SanThe -

24/07/2013 13:36:29
Quote Anchor link
Als je een html mail maakt, zorg dan dat de html W3C Valid is.
 
Tobias Tobias

Tobias Tobias

24/07/2013 14:05:22
Quote Anchor link
Ik heb de html nu helemaal valid, maar hij blijft dezelfde problemen geven. Ook met inline-css werkt het niet. (dus met <div style=>

Hier 2 voorbeelden van wat er mis gaat:
Afbeelding
Afbeelding
Bij voorbeeld 2 moet het logo rechts staan ipv links. Hij geeft hetzelfde probleem in FF, GC en IE.

is er geen bestaand systeem dat ik kan gebruiken?
 
- SanThe -

- SanThe -

24/07/2013 14:08:40
Quote Anchor link
Zet je $bericht eens niet in een mailtje maar gewoon op je site. Ziet het er dan wel goed uit?
 
Tobias Tobias

Tobias Tobias

24/07/2013 14:14:51
Quote Anchor link
Dan ziet hij eruit zoals ik hem wil hebben (ik moet alleen nog kijken hoe ik de tekst om de onderste afbeelding heen krijg, maar dat is een ander onderwerp):
Afbeelding
 
- SanThe -

- SanThe -

24/07/2013 14:18:51
Quote Anchor link
Heb je de juiste mailheaders gebruikt?
 
Obelix Idefix

Obelix Idefix

24/07/2013 15:39:12
Quote Anchor link
Daar zou swiftmailer toch juist voor moeten zorgen?!
 
Tobias Tobias

Tobias Tobias

24/07/2013 16:28:58
Quote Anchor link
@Obelix:
Dat dacht ik ook
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/07/2013 18:34:07
Quote Anchor link
Swiftmailer in prima in staat om de email op juiste wijze te versturen.
Ik zou toch Danny L zijn oplossing eens proberen. Uiteindelijk gaat het om het resultaat en niet om wat W3C er van vindt.
 
Tobias Tobias

Tobias Tobias

24/07/2013 20:08:40
Quote Anchor link
De oplossing van Danny werkt ook niet.

Ik heb hem nu zover werkend dat de afbeeldingen netjes geladen worden. Ik heb in plaats van het relatieve pad een absoluut pad gebruikt voor de afbeeldingen:
<img src="http://www.website.nl/afbeelding.jpg" />
ipv
<img src="afbeelding.jpg" />
Ondanks dat de afbeelding meegestuurd werd als bijlage konden de meeste mail-programma's (uitgezonderd hotmail) blijkbaar niet overweg met een relatief pad.

Blijft alleen de verkeerde opmaak uit voorbeeld 2 over, maar die doet zich alleen voor bij hotmail. Misschien dat het probleem bij hotmail zelf ligt.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/07/2013 20:53:58
Quote Anchor link
Hier staat een aardige tut over het maken van een html email:
http://net.tutsplus.com/tutorials/html-css-techniques/getting-started-with-html-emails/

zo kun je foto's het beste in je HTML invoegen wanneer je ze meestuurt als bijlage met swiftmailer:
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
// Create the message
$message = Swift_Message::newInstance('My subject');

// Set the body
$message->setBody(
'<html>' .
' <head></head>' .
' <body>' .
'  Here is an image <img src="' . // Embed the file
     $message->embed(Swift_Image::fromPath('image.png')) .
   '" alt="Image" />' .
'  Rest of message' .
' </body>' .
'</html>',
  'text/html' // Mark the content-type as HTML
);

bron: http://swiftmailer.org/docs/messages.html
Gewijzigd op 24/07/2013 20:55:55 door Frank Nietbelangrijk
 



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.