8768 sujets

Développement web côté serveur, CMS

Bonsoir,

à chaque fois que je veux le faire, je ne me rappelle plus la technique à employer (et je ne trouve pas de réponse, sur le web).

L'objectif est de faire envoyer, par un script PHP, un mail, avec la méthode POST. Comment faire ?

ATTENTION : si tu ne comprends pas la question, ne te fatigue pas à tenter d'y répondre. Il n'est pas question d'utiliser un formulaire HTML; mais bien de faire envoyer, par un script PHP, un mail, en utilisant la méthode POST.

A bientôt :o) !
Salut,

Je trouve ton « warning » culotté pour quelqu’un qui ne prends pas la peine de faire un tour sur la documentation officielle.

Mini complément de réponse: l’envoi des e-mails est régi par le protocole SMTP et n’a rien à voir avec la méthode POST du protocole HTTP. Il faudra sans doute configurer PHP dans ce sens aussi.

Good luck Smiley smile
Modifié par Anymah (21 Sep 2022 - 04:10)
Bonjour !

Et merci, Anymah'l social, de intéresser à ma question.

Anymah a écrit :
quelqu’un qui ne prends pas la peine de faire un tour sur la documentation officielle.
Il se trouve que j'avais consulté cette page, mais comme tu le laisses entendre, à propos, ensuite, ce n'est peut-être pas un problème de mail.

Soit le fichier :
<?php

ini_set( "display_errors" , TRUE ) ; error_reporting( E_ALL ) ; 
include "database-initeur.php" ;
 
// Récupération des données du formulaire en ligne.
foreach( $_POST as $nom => $value ) $$nom = addslashes( $value ) ;
 
// Récupération du prix de la base de données.
$query = "SELECT prix FROM products WHERE image='$filenom' LIMIT 1" ;
$result = mysqli_query( $mysqli, $query ) ; 
$prix = mysqli_fetch_assoc( $result )["prix"] ;
  
// Transmission des informations à l'intermédiaire bancaire.

// Si banque OK : mise à jour de la base de données à 0.00.
$query = "UPDATE products SET prix='0.00' WHERE image='_$filenom'" ; 
$result = mysqli_query( $mysqli, $query ) ; 
 
// feedback & fin
echo mysqli_error( $mysqli ) ; mysqli_close( $mysqli ) ;

?>

J'ai besoin que ce script envoie des informations à l'intermédiaire bancaire. Je ne vois pas comment faire ???
Ce serait en Javascript : fastoche, il y a fetch; mais, là, c'est du PHP.

Anymah a écrit :
Je trouve ton « warning » culotté
C'est que je n'avais pas compris qu'Alsacréations était un espace nudiste !!!

Alors : Arrivée d'air chaud !!!
Salut,

Je crois que ton problème vient de ta mécompréhension de la communication entre un client et un serveur (d’où le fait que je te trouve culotté dans ta question) car tu mélanges deux protocoles (voir trois si j’ajoute IMAP).

Pour envoyer un mail, toutes les réponses sont dans les pages de la documentation officielle. Faudra sans doute configurer PHP (ça varie selon Windows ou Linux/macOS). Sinon, pour envoyer des requêtes HTTP tu peux jeter un coup d’œil à l’api cURL. Mais je ne la trouve pas super intuitive. Certaines librairies comme guzzle peuvent être une bonne alternative.

Voilà, dagobert. Tu peux remettre ta culotte à l’endroit Smiley smile
dagobert a écrit :
Bonjour !
[...]
J'ai besoin que ce script envoie des informations à l'intermédiaire bancaire. Je ne vois pas comment faire ???

Salut
J'ai rien compris.
Tu parles de "Mailer" dans le titre du sujet, mais le code que tu partages c'est juste des requêtes SQL... je ne vois pas le mailer php que tu aurais pu commencer à coder.
dagobert a écrit :

Ce serait en Javascript : fastoche, il y a fetch; mais, là, c'est du PHP.

Je ne vois pas toujours de mailer... fetch ok mais rien à voir avec mailer php.
Modifié par JENCAL (22 Sep 2022 - 11:00)
Bonjour, et merci de vous intéresser à mon problème.

Rapidement, voilà où j'en suis :
<?php

ini_set( "display_errors" , TRUE ) ; error_reporting( E_ALL ) ; 
include "database-initeur.php" ;
  
// Récupération du prix & titre de la base de données.
$query = "SELECT * FROM products WHERE image='$_POST[filenom]' LIMIT 1" ;
$result = mysqli_query( $mysqli, $query ) ; 

$fiche = mysqli_fetch_assoc( $result ) ; 
$prix = $fiche["prix"] ;
$titre = $fiche["titre"] ;
  
// Transmission des informations à l'intermédiaire bancaire.

// Si banque OK : mise à jour de la base de données à 0.00.
$query = "UPDATE products SET prix='0.00' WHERE image='xxx'" ; 
$result = mysqli_query( $mysqli, $query ) ; 
 
// Mail à l'acheteur.
include "../Maileurs/haar-maileur.php" ; 
  
// feedback & fin
echo mysqli_error( $mysqli ) ; mysqli_close( $mysqli ) ;

?>


Et :
<?php //Maileurs/haar-maileur.php

$coty_header = "Content-Type: text/html; charset=utf-8" ;
header( $coty_header ) ;
 
include "../prologue.php" ;
$sitemail = "dagobert@lavache.com" ; 

// prio headers
$prio_headers = array( array( "X-Priority: 1", "Priority: 1", "X-MSMail-Priority: High", "Importance: High" ),
array( "X-Priority: 2", "Priority: 2", "X-MSMail-Priority: Normal", "Importance: Normal" ) ) ;

$mail_headers = $prio_headers[0] ; a
$mail_headers[] = $coty_header ;
$mail_headers[] = "From: $sitemail" ;

$phrases = array(
"Bonjour".VI.tag( $_POST["mail"], "i" ).PE,
"J'ai le plaisir de vous confirmer que vous venez d'acquérir la pièce".
spacer( tag( $titre, "i" ) )."sur le site".SPACE.tag( $_SERVER["SERVER_NAME"], "i" ).PT,
"Vous pouvez reprendre contact avec moi, en répondant à ce mail, afin d'en organiser, ensemble, la livraison".PT,
"Meilleures salutations".VI,
NOM,
) ;

$corps = $_POST["style"].$_POST["logo"].htmllister( $phrases, "p", "div" ) ;
echo mailer( $_POST["mail"], "Message de $sitemail", $corps, $mail_headers ) ;

?>


En attendant un commentaire de ma part.

Bonne journée :o)
dans ces lignes :

$mail_headers = $prio_headers[0] ; a
$mail_headers[] = $coty_header ;


c'est quoi la lettre "a" en plein milieu après le ";"
Bonsoir, JENCAL,

État des lieux :
<?php

ini_set( "display_errors" , TRUE ) ; error_reporting( E_ALL ) ; 
include "../prologue.php" ; include "database-initeur.php" ;
  
// Récupération du prix & titre de la base de données.
$query = "SELECT * FROM products WHERE image='$_POST[filenom]' LIMIT 1" ;
$result = mysqli_query( $mysqli, $query ) ; 

$fiche = mysqli_fetch_assoc( $result ) ; 
$prix = $fiche["prix"] ;
$titre = $fiche["titre"] ;
  
// Transmission des informations à l'intermédiaire bancaire.

// Si banque OK : mise à jour de la base de données à 0.00.
$query = "UPDATE products SET prix='0.00' WHERE image='xxx'" ; 
$result = mysqli_query( $mysqli, $query ) ; 
  
// prio headers
$prio_headers = array( array( "X-Priority: 1", "Priority: 1", "X-MSMail-Priority: High", "Importance: High" ),
array( "X-Priority: 2", "Priority: 2", "X-MSMail-Priority: Normal", "Importance: Normal" ) ) ;

$mail_headers = $prio_headers[$prod] ; 
$mail_headers[] = $coty_header ;

// Mails à l'acheteur & à Jérôme.
include "../Maileurs/haar-maileur.php" ; 
include "../Maileurs/okha-maileur.php" ; 
  
// feedback & fin
echo mysqli_error( $mysqli ) ; mysqli_close( $mysqli ) ;

?>


<?php

$mail_headers[] = "From: $_POST[mail]" ;

$phrases = array(
"Bonjour, Jérôme !",
"Je viens de vous acheter la pièce".SPACE.tag( $titre, "i" ).PT,
VEUILLEZ."prendre contact, rapidement, avec moi, à $_POST[mail], pour organiser ma livraison".PT,
"Meilleures salutations".VI,
$_POST["mail"],
) ;

$corps = $_POST["style"].$_POST["logo"].htmllister( $phrases, "p", "div" ) ;
echo mailer( $destinataires, "Message de $_POST[mail]", $corps, $mail_headers ) ;

?>


<?php
 
$mail_headers[] = "From: $mel" ;

$phrases = array(
"Bonjour".VI.tag( $_POST["mail"], "i" ).PE,
"J'ai le plaisir de vous confirmer que vous venez d'acquérir la pièce".
spacer( tag( $titre, "i" ) )."sur mon site".SPACE.tag( $_SERVER["SERVER_NAME"], "i" ),
VEUILLEZ."reprendre contact avec moi, en répondant à ce mail, afin que nous puissions organiser, ensemble, sa livraison".PT,
"Meilleures salutations".VI,
NOM,
) ;
$corps = $_POST["style"].$_POST["logo"].htmllister( $phrases, "p", "div" ) ;

echo mailer( $_POST["mail"], "Message de $mel", $corps, $mail_headers ) ;

?>


Cela semble fonctionner. Reste le principal : la négociation avec les banques.
https://grom.doobee.fun/?
Bonjour, Jencal !!!

Jencal a écrit :
c'est quoi la lettre "a" en plein milieu après le ";"

Merci de ta lecture attentive. C'est un lapsus clavi !

Bonne journée !!!