Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Envoie par mail de la page html courante

3 réponses
Avatar
turtly
Bonjour,
Je souhaite qu'un utilisateur envoie la page html courante dans un mail par php ou javascript en cliquant sur un bouton envoi de type submit ou non. De préférence, sans enregistrer cette page préalablement.
Cette page peut être une pièce jointe ou non.

J'ai essayé avec javascript et mailto. Mais mon mail est vide, la page n'étant pas un formulaire au sens strict. Mailto semble en effet n'intégrer dans un mail que le contenu de champs de saisie type="text".
Il n'intégre par des trucs comme <td><?php echo $donnee; ?></td> sensé afficher des données issues d'une requête oracle passée en variable à php.

J'ai résussi avec php à envoyer un mail avec pièce jointe (page courante enregistrée manuellement sur le serveur, je ne sais pas commetn l'enregistrer automatiquement via php) le problème est que le fichier doit être côté serveur et que je souhaite que ma page courante, si je l'enregistre avant de l'envoyer soit du côté client (enregsitrement que je peux faire grâce à javascript).

Conclusion :
Comme je ne sais pas comment envoyer la page courante par mail sans l'enregistrer, je tente de l'envoyer après l'avoir enregistrée.
Mais, comme, je ne sais pas enregsitrer cette page du côté serveur via PHP, je l'enregistre sur le PC de l'utilisateur via javascript. Mais alors, php n'arrive pas à la trouver lorsque je lui indique le chemin pour la pièce jointe.

Je vous remercie de votre aide éventuelle.

3 réponses

Avatar
Pascal PONCET
turtly a écrit :
Je souhaite qu'un utilisateur envoie la page html courante dans un mail par php
ou javascript en cliquant sur un bouton envoi de type submit ou non. De
préférence, sans enregistrer cette page préalablement.
Cette page peut être une pièce jointe ou non.



Bonjour,

Question bête : comment est générée la page sur le serveur ? c'est du
PHP ? vous pouvez modifier le source ?

La logique voudrait qu'une commande de l'utilisateur (un bouton ou un
lien) génère à nouveau la page qui lui a été servie, puis que ce script
PHP la passe dans le corps du mail à envoyer.

Cordialement,
Pascal
Avatar
turtly
Pascal PONCET a écrit le 08/04/2009 à 23h43 :
turtly a écrit :
Je souhaite qu'un utilisateur envoie la page html courante dans un mail par
php
ou javascript en cliquant sur un bouton envoi de type submit ou non. De
préférence, sans enregistrer cette page préalablement.
Cette page peut être une pièce jointe ou non.




Bonjour,

Question bête : comment est générée la page sur le
serveur ? c'est du
PHP ? vous pouvez modifier le source ?

La logique voudrait qu'une commande de l'utilisateur (un bouton ou un
lien) génère à nouveau la page qui lui a été
servie, puis que ce script
PHP la passe dans le corps du mail à envoyer.

Cordialement,
Pascal


Bonjour,
J'apporte des précisions à mon premier message.
La page chargée par l'utilisateur et à envoyer par mail est une page HTML qui contient dans un tableau des données issues d'Oracle.
Une première page PHP passe des requêtes sql.
Un include permet d'afficher la page HTML que l'utilisateur pourra envoyer par mail.
Cette page est mise à jour lors de son chargement grâce à des variables alimentées par les données retournées par la requête.
Je voudrais soit via javascript, soit via PHP que l'utilisateur puisse envoyer par mail cette page HTML lorsqu'il clique sur un bouton. Ceci sans forcément l'avoir enregistrée avant.
Je sais comment envoyer un mail avec pièce jointe via PHP. Le problème est que je ne sais pas comment enregistrer cette page HTML côté serveur.
Je sais comment faire que l'utilisateur via javascript enregistre cette page sur son micro, mais ja ne sais pas comment l'envoyer en pièce jointe ou dans le corps d'un mail.

Merci pour votre aide
Avatar
Olivier Miakinen
Le 09/04/2009 11:07, turtly a écrit :

J'apporte des précisions à mon premier message.
La page chargée par l'utilisateur et à envoyer par mail est une page HTML qui
contient dans un tableau des données issues d'Oracle.
Une première page PHP passe des requêtes sql.
Un include permet d'afficher la page HTML que l'utilisateur pourra envoyer par
mail.
Cette page est mise à jour lors de son chargement grâce à des variables
alimentées par les données retournées par la requête.
Je voudrais soit via javascript, soit via PHP que l'utilisateur puisse envoyer
par mail cette page HTML lorsqu'il clique sur un bouton. Ceci sans forcément
l'avoir enregistrée avant.



Voici une idée : <http://www.php.net/ob_start>.

<?php
ob_start();
?>
... ici le code actuel de la page en question ...
<?php
if (isset($_REQUEST['mail_it']) && ...) {
$html = ob_get_contents();
mail(..., $html, ...);
ob_end_clean();
include "mail_was_sent.php";
} else {
ob_end_flush();
}
?>

Bien sûr, il faut faire tous les contrôles qui vont bien avant d'envoyer
le message. À ce propos voici une page très intéressante (malgré les
fautes d'orthographe) que Michael Denis vient de signaler sur fciwa :
<http://www.phpsecure.info/v2/article/MailHeadersInject.php>.

Il faut aussi rajouter le « ob_end_flush() » avant d'éventuels appels à
exit() en cours de programme.

Cordialement,
--
Olivire Miakinen