Invoegen afbeelding in boodschap bij verzenden via site
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
function zendmail($link1,$link2,$tekst1,$tekst2,$tekst3,$Naam,$AT,$Naam2,$Vnaam2,$mail)
{
$aanspreking="Beste medelid ";
$ontvanger=$mail;
$afzender="verwijderd!!!";
$datum=date("r (T)");
$onderwerp="Testmail aan bestuursleden";
$boodschap= $aanspreking . $AT . " " . $Vnaam2 . " " . $Naam2 . "\r\n" . "\r\n". $link1 . "\r\n" . "\r\n" . $link2 . "\r\n" . "\r\n" . $tekst1 . "\r\n" .
"\r\n" . $tekst2 . "\r\n" . "\r\n" . $tekst3 . "\r\n" . "\n" . $Naam;
$headers='From: '.($afzender)."\r\n".'Reply-To: ' . "[email protected]" ."\r\n".'Date:' .($datum)."\r\n".'X-Mailer: PHP/'.phpversion();
mail($ontvanger,$onderwerp,$boodschap, $headers);
}
{
$aanspreking="Beste medelid ";
$ontvanger=$mail;
$afzender="verwijderd!!!";
$datum=date("r (T)");
$onderwerp="Testmail aan bestuursleden";
$boodschap= $aanspreking . $AT . " " . $Vnaam2 . " " . $Naam2 . "\r\n" . "\r\n". $link1 . "\r\n" . "\r\n" . $link2 . "\r\n" . "\r\n" . $tekst1 . "\r\n" .
"\r\n" . $tekst2 . "\r\n" . "\r\n" . $tekst3 . "\r\n" . "\n" . $Naam;
$headers='From: '.($afzender)."\r\n".'Reply-To: ' . "[email protected]" ."\r\n".'Date:' .($datum)."\r\n".'X-Mailer: PHP/'.phpversion();
mail($ontvanger,$onderwerp,$boodschap, $headers);
}
Iemand enig idee hoe ik dit in de boodschap kan krijgen. Het logo is uiteraard altijd hetelfde een .png.
Alvast bedankt, ik heb al heel wat tijd gespendeerd met het zoeken op internet maar nog niets gevonden.
Gewijzigd op 12/07/2024 19:04:10 door Ignace Verschaeve
Ik heb gezocht op invoegen afbeelding in boodschap of message maar ik zie telkens oplossingen om afbeeldingen op een webpagina te zetten of in een gewone mail via outlook ofzo.
'How to insert image in PHP mail' zal wel wat meer spannends geven.
Maar als ik een goede tip mag geven: Gebruik phpMailer in plaats van het wiel zelf opnieuw uit te vinden.
Code (php)
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
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
<?php
// Recipient
$to = '[email protected]';
// Sender
$from = '[email protected]';
$fromName = 'Webmaster';
// Email subject
$subject = 'PHP Email image of St. Petersburg';
// Attachment file
$file = "St. Petersburg.jpg";
// Email body content
$htmlContent = '<h3>PHP Email with Attachment by CodexWorld</h3>
<p>This email is sent from the PHP script with attachment.</p>';
// Header for sender info
$headers = "From: $fromName"." <".$from.">";
// Boundary
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Headers for attachment
$headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
// Multipart boundary
$message = "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"UTF-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" . $htmlContent . "\n\n";
// Preparing attachment
if( !empty($file) > 0 ):
if( is_file($file) ):
$message .= "--{$mime_boundary}\n";
$fp = @fopen($file,"rb");
$data = @fread($fp,filesize($file));
@fclose($fp);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: application/octet-stream; name=\"".basename($file)."\"\n" .
"Content-Description: ".basename($file)."\n" .
"Content-Disposition: attachment;\n" . " filename=\"".basename($file)."\"; size=".filesize($file).";\n" .
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
endif;
endif;
$message .= "--{$mime_boundary}--";
$returnpath = "-f" . $from;
// Send email
$mail = @mail($to, $subject, $message, $headers, $returnpath);
// Email sending status
echo $mail?"<h1>Email Sent Successfully!</h1>":"<h1>Email sending failed.</h1>";
?>
// Recipient
$to = '[email protected]';
// Sender
$from = '[email protected]';
$fromName = 'Webmaster';
// Email subject
$subject = 'PHP Email image of St. Petersburg';
// Attachment file
$file = "St. Petersburg.jpg";
// Email body content
$htmlContent = '<h3>PHP Email with Attachment by CodexWorld</h3>
<p>This email is sent from the PHP script with attachment.</p>';
// Header for sender info
$headers = "From: $fromName"." <".$from.">";
// Boundary
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Headers for attachment
$headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
// Multipart boundary
$message = "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"UTF-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" . $htmlContent . "\n\n";
// Preparing attachment
if( !empty($file) > 0 ):
if( is_file($file) ):
$message .= "--{$mime_boundary}\n";
$fp = @fopen($file,"rb");
$data = @fread($fp,filesize($file));
@fclose($fp);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: application/octet-stream; name=\"".basename($file)."\"\n" .
"Content-Description: ".basename($file)."\n" .
"Content-Disposition: attachment;\n" . " filename=\"".basename($file)."\"; size=".filesize($file).";\n" .
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
endif;
endif;
$message .= "--{$mime_boundary}--";
$returnpath = "-f" . $from;
// Send email
$mail = @mail($to, $subject, $message, $headers, $returnpath);
// Email sending status
echo $mail?"<h1>Email Sent Successfully!</h1>":"<h1>Email sending failed.</h1>";
?>
Toevoeging op 12/07/2024 19:54:04:
Hier komt de code vandaan.
https://www.codexworld.com/send-email-with-attachment-php/
wil je de afbeelding in de tekst zien, dan moet dat embedded gedaan worden\
https://stackoverflow.com/questions/3708153/send-email-with-phpmailer-embed-image-in-body
Ik heb ondertussen al de suggesties, linken en dergelijke uitgeprobeerd maar geen enkele die voldoen aan mijn eisen. Dit is goed voor een enkele mail maar ik slaag er niet in om de variabelen die uit de database komen te integreren in de HTML inhoud.Ik heb het dan over aanspreking, Voornaam, naam en dergelijke. Maar ik blijf verder zoeken en puzzelen.
Dus ook <body> en <head> tags. Valid html volgens W3C.
Daarin kan je de gegevens uit de database gebruiken.
Maar hoe geef ik weer zoiets als $Naam2 = $row['Naam']; zijnde gegevens die uit een tabel komen.
Ik heb al geprobeerd <p> </p> maar dat is het blijkbaar niet.
Waarom zou je dit eigenlijk opnieuw willen opslaan in $Naam2?
De workflow is:
De secretaris of penningmeester of een ander bestuurslid kiest ervoor om een mail te versturen.
Er is een scherm waar hij linken, onderwerp, tekst en dergelijke kan invoeren. En waar er kan gekozen worden om te versturen naar een bepaalde doelgroep. In de databasetabel staat tot welke doelgroep je behoort.
Die gegevens worden gebruikt in een functie die de mail een voor een verstuurt naar de leden van de doelgroep.
Dit gaat nu via platte tekst. Maar in HTML is het de bedoeling om dit te doen via een mooier geformatteerde tekst met gepersonaliseerde aanspreking. Dus met het gebruik van Bold, Italic en ook met een afbeelding en dergelijke.
Nu werkt dit met platte tekst of dit naar 8 of 1500 personen is. Ik zit enkel met de beperkingen van de server die maar 1500 mails per uur toelaat. Maar dit wordt opgelost door een pause van 3 seconden tussen elke mail in te lassen. 3600 seconden gedeeld door 1500 is met marge ongeveer 3 seconden.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
>?php
while($row = haalrecordop())
{
$inhoudmail = 'allehtmltagstotenmet<body>';
$inhoudmail .= 'Beste '.$row['naam'];
$inhoudmail .= restvandemail;
$inhoudmail .= 'allehtmltagsvanaf</body>';
sendmail($inhoudmail);
}
?>
while($row = haalrecordop())
{
$inhoudmail = 'allehtmltagstotenmet<body>';
$inhoudmail .= 'Beste '.$row['naam'];
$inhoudmail .= restvandemail;
$inhoudmail .= 'allehtmltagsvanaf</body>';
sendmail($inhoudmail);
}
?>
Gewijzigd op 19/07/2024 00:37:43 door - SanThe -
Toevoeging op 18/07/2024 18:30:01:
- SanThe - op 18/07/2024 14:15:35:
Dus zoiets: $inhoudmail .= $tekst1 . $tekst2 .$tekst3; Maar dat is het blijkbaar niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
while ( $row = $result->fetch_object() )
{
$bodyHTML = "<!DOCTYPE html>
<html>
<head>
<style type='text/css'>
.divv {border: 1px solid red; max-width: 720px; padding: 0.500em; margin: 0.500em auto;}
</style>
</head>
<body>
<div class='divv'>
<h3>Hallo <b>" . $name . ",</b></h3>
<p><a href='" . $votelink . "' target='_blank'>" . $votelink . "</a></p>
<p><img src='" . $ballot_day_row->voting_scheme . '://' . $ballot_day_row->voting_url . 'qr_images/' . $tokenToVote . ".png' alt='voting token' style='width: 198px; heigth: 198px;' /></p>
</div>
</body>
</html>";
}
?>
while ( $row = $result->fetch_object() )
{
$bodyHTML = "<!DOCTYPE html>
<html>
<head>
<style type='text/css'>
.divv {border: 1px solid red; max-width: 720px; padding: 0.500em; margin: 0.500em auto;}
</style>
</head>
<body>
<div class='divv'>
<h3>Hallo <b>" . $name . ",</b></h3>
<p><a href='" . $votelink . "' target='_blank'>" . $votelink . "</a></p>
<p><img src='" . $ballot_day_row->voting_scheme . '://' . $ballot_day_row->voting_url . 'qr_images/' . $tokenToVote . ".png' alt='voting token' style='width: 198px; heigth: 198px;' /></p>
</div>
</body>
</html>";
}
?>
We gaan dit zo snel mogelijk uitproberen. Bedankt.Zal iets voor een van de volgende dagen zijn. Eerst nog wat andere dingen doen.
Ignace Verschaeve op 18/07/2024 18:25:17:
Maar dat is het blijkbaar niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
while($row = haalrecordop())
{
$inhoudmail = 'allehtmltagstotenmet<body>';
$inhoudmail .= 'Beste '.$row['naam'];
$inhoudmail .= $tekst1 . $tekst2 .$tekst3;
$inhoudmail .= 'allehtmltagsvanaf</body>';
sendmail($inhoudmail);
}
?>
while($row = haalrecordop())
{
$inhoudmail = 'allehtmltagstotenmet<body>';
$inhoudmail .= 'Beste '.$row['naam'];
$inhoudmail .= $tekst1 . $tekst2 .$tekst3;
$inhoudmail .= 'allehtmltagsvanaf</body>';
sendmail($inhoudmail);
}
?>
Maar dat is het blijkbaar niet.
Je moet het wel op de juiste plaats zetten.
Gewijzigd op 19/07/2024 00:36:48 door - SanThe -