OVH Cloud OVH Cloud

Mail Mime extension PEAR

2 réponses
Avatar
Julien MARY
Bonjour,

J'ai un problème avec le code suivant, et comme je suis nul en POO,
vos lumières me seraient de grand secours.
Ce code utilise les extensions mime de PEAR.

J'obtient une erreur :
*Fatal error*: Call to a member function on a non-object in
*mailmime.php* on line *62

*Et je n'ai aucune idée de la cause. Ce que j'ai lu dans les FAQ ne m'a
pas aidé.

Merci de votre aide,

Julien*
*


<?php
//include('Mail.php');
include('Mail/mime.php'); // calling of of the PEAR extensions.
include('mail_a_envoyer.php'); // including of a file setting up the
variable $html (it is the html message to send)
require_once ('Mail/mimePart.php');

//inline or in attachment files
$file_ppt = 'presentation.ppt'; // attachement
$file_vcf = 'julien.mary.vcf'; // attachement
$html = $mail_html ; //en ligne

// headers definition
$From = 'julien.mary@free.fr';
$Reply_To = $From;
$X_Mailer = "PHP/ . phpversion())";
$X_Accept_Language = "fr, fr-fr, en-us, en";
$Mime_Version = '1.0';
$Subject = "migration de serveurs d'entreprise vers des
solutions libres";

// carriage return definition
$crlf = "\r\n";

// tab of headers definition
$heads = array(
'From' => $From,
'Reply-To' => $Reply_To,
'X-Mailer' => $X_Mailer,
'X-Accept-Language' => $X_Accept_Language,
'Mime-Version' => $Mime_Version,
'Subject' => $Subject
);

// message multipart definition (container)
$parametres['content_type'] = 'multipart/mixed';
$email = new Mail_mimePart('',$parametres);

// html content definition (1st mime part)
$parametres['content_type'] = 'text/html; charset=us-ascii';
$parametres['encoding'] = '7bit';
$parametres['charset'] = 'us-ascii';
$text = $email -> addSubPart($html,$parametres);

// attached file definition (2nd mime part)
$parametres['content_type'] = 'application/vnd.ms-powerpoint';
$parametres['encoding'] = 'base64';
$parametres['disposition'] = 'attachment';
$parametres['dfilename'] = $file_ppt;

$piecejointe =& $email -> addSubPart($file_ppt,$parametres);

// vcard addition (3rd mime part)
$parametres['content_type'] = 'text/x-vcard';
$parametres['charset'] = 'utf-8';
$parametres['encoding'] = '7bit';
$parametres['disposition'] = 'attachment';
$parametres['dfilename'] = $file_vcf;

$piecejointe2 =& $email -> addSubPart($file_vcf,$parametres);

// encoding of the message
//$message = new Mail_mime($crlf);
$email = $message->encode();

// adding headers : $email is an indexed table containing a table at
'headers' and message body at 'body'
$email['headers'] = $heads ;

// sending

$success -> send('ju@localhost',$email['headers'],$email['body']);

?>

--

2 réponses

Avatar
marc.quinton-PAS-DE-
Julien MARY wrote:
Bonjour,

J'ai un problème avec le code suivant, et comme je suis nul en POO,
vos lumières me seraient de grand secours.
Ce code utilise les extensions mime de PEAR.

J'obtient une erreur :
*Fatal error*: Call to a member function on a non-object in
*mailmime.php* on line *62

*Et je n'ai aucune idée de la cause. Ce que j'ai lu dans les FAQ ne m'a
pas aidé.


la cause, c'est que tu fais un appel de fonction de ce genre sur un
objet qui n'existe pas :

$obj->methode(...);

peut-etre un petit error_reporting(E_ALL); tout la haut pour te prévenir
de tes fautes d'inatention ....

t'es vraiment pas loin de la solution definitive je trouve ; est-ce
volontaire le commentaire ligne 61,62 ?

// encoding of the message
//$message = new Mail_mime($crlf);
$email = $message->encode();



sino je suppose que tu as regardé cette page d'utilisation des
classes :

http://pear.php.net/manual/en/package.mail.mail-mime.example.php

--

Avatar
Julien MARY
Je répond entre les lignes.

wrote:

la cause, c'est que tu fais un appel de fonction de ce genre sur un
objet qui n'existe pas :

$obj->methode(...);


Comme je suis ultra-ignorant en POO, ceci ne me dit rien.
De quelle fonction parle-t-on ? Quel est l'ojet qui n'existe pas ?


peut-etre un petit error_reporting(E_ALL); tout la haut pour te prévenir
de tes fautes d'inatention ....


C'est déjà par défaut dans mon php.ini. Je veux des codes propres sans
même un mini warning.


t'es vraiment pas loin de la solution definitive je trouve ; est-ce
volontaire le commentaire ligne 61,62 ?

// encoding of the message
//$message = new Mail_mime($crlf);
$email = $message->encode();


Ce commentaire correspond à une tentative correspondant à l'exemple de

la page
http://pear.php.net/manual/en/package.mail.mail-mime.example.php
Si je décommente j'obtient :
Fatal error: Call to undefined function: encode() in
/var/www/market/FICHIERS_CCI/mailmime.php on line 67*

*Mon code s'inspire complètement de la page :
http://pear.php.net/manual/en/package.mail.mail-mimepart.addsubpart.php

En attendant une réponse qui sera peut-être salvatrice, je vais me
plonger dans un guide d'utilisation des classes. Si je comprend tout
cela, l'erreur m'apparaitra peut-être alors dans toute son évidence.

Amicalement,

Julien

--