8721 sujets

Développement web côté serveur, CMS

Pages :
Bonjour,
J'ai un code qui envoi un mail via phpmaileur, ça fonctionne super bien bien sauf que le mail n'est pas crypté. Version 5, par contre sur le serveur, j'utilise la version 6 pour un espace membre et là le mail est crypté, donc ça ne vient pas du serveur.

Mon code, là je deviens chèvre !!!!

Version du code 5.2. (stable)

<?php  
  include("class.phpmailer.php");
  include("class.smtp.php");

  date_default_timezone_set("Europe/Paris"); 

  $mail             = new PHPMailer(); 
  $mail->IsSMTP();
  $mail->SMTPAuth   = true;
  $mail->SMTPSecure = 'tls';
  $mail->Host       = "X";  
  $mail->Port       = 587;
  $mail->Username   = "y";
  $mail->Password   = "z";        
  $mail->From       = "y"; //adresse d’envoi correspondant au login entré précédemment
  $mail->FromName   = "Fozzie"; // nom qui sera affiché
  $mail->Subject    = "Test de cryptage"; // sujet
  $mail->CharSet = "text/html; charset=UTF-8;";  
  $body             = "Vive les gilets jaunes !"; 
  $mail->MsgHTML($body); 
  
  $mail->AddReplyTo("x","Macron");
  $mail->AddAddress("J");
  $mail->isHTML(true); // envoi du mail en HTML 

  if(!$mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
  } else {
    echo "Le message à bien été envoyé";
  } 
?>


Le mail est bien envoyé mais n'est pas crypté. J'ai pris les mêmes réglages que la version 6 qui fonctionne à merveille. Smiley ohwell
J'utilise la version 5 car plus simple pour moi à faire fonctionner vue mon faible niveau Smiley murf

Merci par avance pour vos lumières, là je sèche !!!!
Modifié par Tintin75 (22 Dec 2018 - 20:23)
Bonjour,
Oui même serveur. La version 6 a été insallé par GregLumière et il arrive à crypter.
Je suis entrain de regarder pour utiliser la même version que lui, mais je bloque. Le code change entre la version 5 et 6. La version 5 j'arrive à la faire fonctionner, la version 6 ça plante.
Modifié par Tintin75 (23 Dec 2018 - 09:01)
Exemple en version 6 sur https://github.com/PHPMailer/PHPMailer/blob/master/examples/ssl_options.phps

<?php
/**
 * 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 '../vendor/autoload.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 = 'smtp.example.com';
//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' => 'smtp.example.com',
        '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 = 'username@example.com';
//Password to use for SMTP authentication
$mail->Password = 'yourpassword';
//Set who the message is to be sent from
$mail->setFrom('from@example.com', 'First Last');
//Set who the message is to be sent to
$mail->addAddress('whoto@example.com', 'John Doe');
//Set the subject line
$mail->Subject = 'PHPMailer SMTP options test';
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML(file_get_contents('contents.html'), __DIR__);
//Send the message, check for errors
if (!$mail->send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message sent!';
}


Je remplis les champs et ça plante Smiley bawling

A mon avis c'est cette partie là qui fait que ça coince :

/**
 * 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 '../vendor/autoload.php';

Modifié par Tintin75 (23 Dec 2018 - 09:09)
Modérateur
Bonjour,

Tu rajoutes si ce n'est déjà fait :

$mail->SMTPAutoTLS = false;
$mail->SMTPDebug = 2;


Et tu regardes les messages d'erreurs.

Amicalement,
2018-12-23 08:43:31 CLIENT -> SERVER: Subject: Test de cryptage
2018-12-23 08:43:31 CLIENT -> SERVER: Message-ID: <c71d59864ce298e5e6b7152ce94f7aad@X.com>
2018-12-23 08:43:31 CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.27 (https://github.com/PHPMailer/PHPMailer)
2018-12-23 08:43:31 CLIENT -> SERVER: MIME-Version: 1.0
2018-12-23 08:43:31 CLIENT -> SERVER: Content-Type: multipart/alternative;
2018-12-23 08:43:31 CLIENT -> SERVER: boundary="b1_c71d59864ce298e5e6b7152ce94f7aad"
2018-12-23 08:43:31 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER: This is a multi-part message in MIME format.
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER: --b1_c71d59864ce298e5e6b7152ce94f7aad
2018-12-23 08:43:31 CLIENT -> SERVER: Content-Type: text/plain; charset=us-ascii
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER: Fozzie adore rigoler avec son grand copain le singe !
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER: --b1_c71d59864ce298e5e6b7152ce94f7aad
2018-12-23 08:43:31 CLIENT -> SERVER: Content-Type: text/html; charset=us-ascii
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER: Fozzie adore rigoler avec son grand copain le singe !
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER: --b1_c71d59864ce298e5e6b7152ce94f7aad--
2018-12-23 08:43:31 CLIENT -> SERVER:
2018-12-23 08:43:31 CLIENT -> SERVER: .
2018-12-23 08:43:32 SERVER -> CLIENT: 250 2.0.0 Ok: queued as 8782A6EE85
2018-12-23 08:43:32 CLIENT -> SERVER: QUIT
2018-12-23 08:43:32 SERVER -> CLIENT: 221 2.0.0 Bye
Le message à bien été envoyé
Le pire c'est que Greg arrive à crypter son mail sur le serveur, sans problème. Il utilise la version 6.0.5
Modérateur
Bonjour,

Je ne vois rien d'évident.

On fait un combat d'arrière-garde, là.

Il vaudrait mieux que tu passes du temps à faire fonctionner la version 6 plutôt que la version 5.

Je ne comprends pas trop ce qui ne marche pas avec la version 6 ( tu dis qu'elle marche et tu dis que tu n'arrives pas à la faire marcher).

Amicalement,
Je suis entrain de faire fonctionner la version 6 qui est plus récente, mais je galère avec :

/**
 * 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 '../vendor/autoload.php';
Je vais dans voir voir le code brut du message.

Je vois la différence entre le code de Greg et le miens.
Modifié par Tintin75 (23 Dec 2018 - 09:59)
Modérateur
Bonjour,

Quand tu dis que tu galères avec les 3 lignes de codes use PHPMailer\PHPMailer\PHPMailer; etc., c'est quoi le problème ?

Amicalement,
Modérateur
Bonjour,

Essaie ça déjà (mise en commentaire des deux dernières lignes qui peuvent ne pas servir) :

use PHPMailer\PHPMailer\PHPMailer;
// date_default_timezone_set('Etc/UTC');
// require '../vendor/autoload.php';


Amicalement,
<?php
use PHPMailer\PHPMailer\PHPMailer;
// date_default_timezone_set('Etc/UTC');
// require '../vendor/autoload.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


Error 500
Modérateur
Bonjour,

Et y a rien avant ?

Pas de require 'PHPMailerAutoload.php'; ?

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


Amicalement,
Pages :