8771 sujets

Développement web côté serveur, CMS

Pages :
Modérateur
(reprise du message précédent)

Bonjour,

Et y a rien avant ?

Pas de require 'PHPMailerAutoload.php'; ?

Essaie de mettre au début :
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;


Amicalement,
Erreur 500

Par contre avec ça :

/**
 * This example shows settings to use when sending over SMTP with TLS and custom connection options.
 */
//Import the PHPMailer class into the global namespace
use PHPMailer\PHPMailer\PHPMailer;
//SMTP needs accurate times, and the PHP time zone MUST be set
//This should be done in your php.ini, but this is how to do it if you don't have access to that
date_default_timezone_set('Etc/UTC');

require 'OAuth.php';
require 'Exception.php';
require 'PHPMailer.php';
require 'SMTP.php';

//Create a new PHPMailer instance
$mail = new PHPMailer;


J'ai un :
Mailer Error: Message body empty
$mail->Subject = 'PHPMailer SMTP options test';

  $body             = "Vive les gilets jaunes !"; 
  $mail->MsgHTML($body);


Version 6.0.6, on doit pas être loin car plus d'erreur 500 Smiley lol
Modifié par Tintin75 (23 Dec 2018 - 10:12)
Modérateur
Bonjour,

Je ne sais pas quoi te dire. Le code part dans tous les sens.

Faut y aller ligne par ligne. Y a pas de raison que tu n'y arrives pas.

Amicalement,
Le fichier Bob.php se trouve dans le même répertoire que code source.

Mailer Error: Message body empty

Pourtant : $mail->MsgHTML = 'Vive les gilets jaunes !'; donc no empty ?
Modifié par Tintin75 (24 Dec 2018 - 15:44)
Modérateur
Bonjour,

Tu as installer phpMailer comment ? Avec Composer ? Ou bien juste en copiant les fichiers quelque part ?

Amicalement ?
en copiant, aye pas la tête.

J'ai téléchargé l'archive zip et installé sur le serveur.
Modifié par Tintin75 (23 Dec 2018 - 10:45)
Modérateur
Bonjour,

Déjà ça explique pourquoi la ligne require '../vendor/autoload.php'; ne marchait pas Smiley smile .

Du coup, faut que tu rajoutes tout un tas de lignes pour que ça tombe en marche.

Si tu as fait juste du copier lors de l'installation, la doc phpMailer dit qu'il faut commencer par :

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';


Amicalement,
Modérateur
Bonjour,

Et je pense que date_default_timezone_set('Etc/UTC'); ne sert probablement à rien, voire met le bazar.

Amicalement,

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

//Create a new PHPMailer instance
$mail = new PHPMailer;


Sur le serveur :
/httpdocs/PHPMailer
/httpdocs/PHPMailer/src

Là, j'ai une erreur 500
Modifié par Tintin75 (23 Dec 2018 - 10:57)
require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

ici ?

comme ça ?*

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require '/src/Exception.php';
require '/src/PHPMailer.php';
require '/src/SMTP.php';

Je galère depuis le début avec ça :
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
Modifié par Tintin75 (23 Dec 2018 - 11:03)
Modérateur
Bonjour,

Bah oui ! Que je sache, tu n'as pas de répertoire qui s'appelle path/to/PHPMailer/src/ sur ton server ! (qui signifie en anglais chemin vers PHPMailer/src)

A priori, vu tes tests précédents, ça pourrait marcher en mettant juste Exception.php, PHPMailer.php et SMTP.php sans chemin devant ! Sinon, faut chercher quel chemin mettre.

Amicalement,
Modifié par parsimonhi (23 Dec 2018 - 11:07)
<?php
use \src\PHPMailer;
use \src\Exception;

require '/src/Exception.php';
require '/src/PHPMailer.php';
require '/src/SMTP.php';


Bob.php se trouve dans le répertoire PhpMailer
Modérateur
Bonjour,

Dans le use, faut rien modifier. Faut remettre ce qu'il y avait avant je pense.

Sinon, pour les autres, ce n'est surement pas /src le chemin, car ça m'étonnerait que src soit à la racine de ton site. Faut mettre un chemin relatif entre ton script qui fabrique le mail et le répertoire src.

Si par contre, ton script qui fabrique le mail est aussi dans le répertoire src, alors tu n'as pas besoin de mettre de chemin.

Amicalement,
Nous allons y arriver, tu m'as déjà sauvé la mise il y a quelques années Smiley lol
Modifié par Tintin75 (23 Dec 2018 - 11:14)
Modérateur
Bonjour,

Oui, j'ai le souvenir que tu étais un poète de l'informatique. Ça n'a pas changé ! Smiley smile

Amicalement,
Modifié par parsimonhi (23 Dec 2018 - 11:17)
C'est pas beau de se moquer Smiley bawling

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'Exception.php';
require 'PHPMailer.php';
require 'SMTP.php';

//Create a new PHPMailer instance
$mail = new PHPMailer;


J'ai tout mis dans le répertoire /PHPMailer/src/ donc plus de problème de chemin. Bob.php est dans le répertoire /src

J'ai retour écran : Mailer Error: Message body empty

"Si par contre, ton script qui fabrique le mail est aussi dans le répertoire src, alors tu n'as pas besoin de mettre de chemin." Bob est le ficher script, il se trouve bien dans le répertoire src.
Modifié par Tintin75 (23 Dec 2018 - 11:23)
Fichier Bob.php qui est le script

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';

//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 2;
//Set the hostname of the mail server
$mail->Host = 'b';
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port = 587;
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';
//Custom connection options
//Note that these settings are INSECURE
$mail->SMTPOptions = array(
    'ssl' => [
        'verify_peer' => true,
        'verify_depth' => 3,
        'allow_self_signed' => true,
        'peer_name' => 'X',
        'cafile' => '/etc/ssl/ca_cert.pem',
    ],
);
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication - use full email address for gmail
$mail->Username = 'x';
//Password to use for SMTP authentication
$mail->Password = 'X';
//Set who the message is to be sent from
$mail->setFrom('x', 'B');
//Set who the message is to be sent to
$mail->addAddress('d', 'Fozzie');
//Set the subject line
$mail->Subject = 'PHPMailer SMTP options test';

$mail->MsgHTML = 'Vive les gilets jaunes !';
  
//Send the message, check for errors
if (!$mail->send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message sent!';
}
?>


Retour écran : Mailer Error: Message body empty

Dans cette version Bob.php est pas dans le répertoire /src

Source GitHub, version 6.0.6 https://github.com/PHPMailer/PHPMailer/blob/master/examples/ssl_options.phps

Je ne suis pas doué Smiley bawling
Modifié par Tintin75 (23 Dec 2018 - 12:02)
Pages :