J'ai un script php qui envoie des e-mails avec des pièces jointes une fois que les utilisateurs ont envoyé des informations. Je reçois ces courriels dans ma boîte de réception Gmail sans problème. Cependant, lorsque j'utilise mon adresse e-mail personnelle ou mon adresse e-mail professionnelle, l'e-mail n'est jamais envoyé. Est-ce un problème avec mon script (ci-dessous) ou un paramètre que j'ai sur le serveur? Je pense que cela pourrait être un problème avec les en-têtes, mais chaque fois que je change les en-têtes, ils cassent l'email et tout apparaît dans le corps du message. Est-ce que quelqu'un sait comment réparer ceci? Le serveur est le serveur linux géré par les clients avec un panneau de contrôle plesk, donc je n'ai pas accès au fichier phi ini.Php mail() envoi d'e-mails arrivant dans un compte gmail mais pas dans un compte e-mail classique
//define the receiver of the email
$to = '[email protected]';
//define the subject of the email
$subject = 'Email with Attachment';
//create a boundary string. It must be unique
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \r\n
$mime_boundary = "<<<--==+X[".md5(time())."]";
$path = $_SERVER['DOCUMENT_ROOT'].'/two/php/';
$fileContent = chunk_split(base64_encode(file_get_contents($path.'CTF_brochure.pdf')));
$headers .= "From: [email protected] <[email protected]>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed;\r\n";
$headers .= " boundary=\"".$mime_boundary."\"";
$message = "This is a multi-part message in MIME format.\r\n";
$message .= "\r\n";
$message .= "--".$mime_boundary."\r\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n";
$message .= "\r\n";
$message .= "Email content and what not: \r\n";
$message .= "This is the file you asked for! \r\n";
$message .= "--".$mime_boundary."" . "\r\n";
$message .= "Content-Type: application/octet-stream;\r\n";
$message .= " name=\"CTF-brochure.pdf\"" . "\r\n";
$message .= "Content-Transfer-Encoding: base64 \r\n";
$message .= "Content-Disposition: attachment;\r\n";
$message .= " filename=\"CTF_brochure.pdf\"\r\n";
$message .= "\r\n";
$message .= $fileContent;
$message .= "\r\n";
$message .= "--".$mime_boundary."\r\n";
//send the email
$mail_sent = mail($to, $subject, $message, $headers);
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
salut Drew. était la sortie "Mail envoyé" ou "Mail a échoué" lorsque vous envoyez à d'autres comptes non-Gmail. avez-vous essayé d'envoyer à un autre compte Gmail? – mauris
sortie à chaque fois est envoyé par courrier – Drew