11
votes

Configuration SMTP pour PHP Mail

J'envoie des mails de mon site Web en utilisant la fonction PHP Mail. Mais maintenant, cela ne fonctionne pas et j'ai contacté notre équipe d'hébergement, puis ils m'ont dit d'utiliser SMTP car ils ont fait des modifications apportées au serveur. Je ne sais pas comment le faire. Code actuel (avec la fonction PHP Mail) est la suivante, peut-on m'aider sur les changements que je dois faire avec cela. XXX


0 commentaires

5 Réponses :


14
votes

Le courrier PHP () CODE> La fonction n'a pas de support pour SMTP. Vous allez avoir besoin d'utiliser quelque chose comme le package de courrier de piles .

voici un Échantillon Script de messagerie SMTP: P>

<?php
require_once("Mail.php");

$from = "Your Name <email@blahblah.com>";
$to = "Their Name <otheremail@whatever.com>";
$subject = "Subject";
$body = "Lorem ipsum dolor sit amet, consectetur adipiscing elit...";

$host = "mailserver.blahblah.com";
$username = "smtp_username";
$password = "smtp_password";

$headers = array('From' => $from, 'To' => $to, 'Subject' => $subject);

$smtp = Mail::factory('smtp', array ('host' => $host,
                                     'auth' => true,
                                     'username' => $username,
                                     'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if ( PEAR::isError($mail) ) {
    echo("<p>Error sending mail:<br/>" . $mail->getMessage() . "</p>");
} else {
    echo("<p>Message sent.</p>");
}
?>


1 commentaires

Comment utiliser le fichier mail.php? /



0
votes

Mais maintenant, cela ne fonctionne pas et j'ai contacté notre équipe d'hébergement, puis ils m'ont dit d'utiliser SMTP

Newsflash - il utilisait SMTP avant. Ils ne vous ont pas fourni les informations dont vous avez besoin pour résoudre le problème - ou que vous ne l'avez pas relayé avec précision ici.

Il est possible qu'ils ont désactivé le MTA local sur le serveur Web, auquel cas vous aurez besoin de connecter le port SMTP sur une machine distante. Il y a beaucoup de boîtes à outils qui feront la forte levée pour vous. Personnellement, j'aime phpmailer car il ajoute d'autres fonctionnalités.

Certainement s'ils avaient emporté une installation qui y était auparavant et votre paye pour un service, votre fournisseur devrait vous donner un meilleur soutien que cela (il existe également de nombreux programmes à baisser à la place d'un MTA complet qui ferait le travail).

c.


0 commentaires

4
votes

Notez que les paramètres de courrier PHP proviennent de votre fichier php.ini . La valeur par défaut ressemble plus ou moins à ceci: xxx

en modifiant votre fichier php.ini Vous devez être capable de résoudre le problème sans changer vos scripts PHP. En outre, vous pouvez tester une connexion avec l'outil Telnet et le helo , du courrier de , rcpt à , data , Quittez les commandes Si vous vous connectez directement à un serveur SMTP. Avec sendmail , vous n'avez même pas besoin de cela, sendmail devrait savoir ce qu'il fait (bien que dans votre cas, ce n'était probablement pas et le sendmail Les paramètres ont probablement besoin d'un peu d'aide.)

Mise à jour: Dans la plupart des cas, Telnet n'est plus installé car il est considéré comme dangereux (c'est-à-dire qu'il vous donne une connexion texte claire qui est généralement une connexion texte claire qui est généralement disponible. Bien sur votre réseau local, mais pas tellement aux ordinateurs distants). Au lieu de cela, nous avons NC qui est très similaire pour les tests Des choses telles que SMTP mais ne permettent pas vraiment de connexions de shell distantes. Cela étant dit, de plus en plus de SMTP va utiliser le cryptage aussi bien que le meilleur outil pour tester est toujours sendmail .


2 commentaires

L'option smtp est uniquement pour Windows. Pour * inux il s'appuie sur sendmail_path qui ne prend pas en charge SMTP. Pour cette raison, j'ai bu.


L'option SMTP a fonctionné pour moi. J'ai une installation postfix locale, cependant. Cela peut aider. Avec une installation distante, vous devrez peut-être spécifier l'info de connexion et de mot de passe.AS JCD mentionné.



0
votes

Étant donné que certaines des réponses donnent ici concernent la mise en place de SMTP en général (et non seulement pour le numéro de notamment @shinod, où il travaillait et arrêté), je pensais que ce serait utile si je mettais à jour la réponse parce que ceci est une beaucoup plus simple à faire maintenant qu'avait :-)

in PHP 4 Le package PEAR PEAR est généralement déjà installé, et ce tutoriel vraiment simple vous indique les quelques lignes de code que vous devez ajouter à votre fichier PHP http://email.about.com/od/emailprogramingtiches/qt/php_email_smtp_authentication.htm

La plupart des entreprises d'hébergement répertorient les paramètres SMTP dont vous aurez besoin. J'utilise Justhost, et ils énumèrent les leurs à https://my.justhost.com/cgi/help/ 26 (sous Serveur de messagerie sortant)


0 commentaires

0
votes

EMAILLE PHP () Fonction MONTES LE COURRIER À UN Agent de transfert de messagerie sous-jacent qui est généralement Postfix sur Linux Systems

La méthode préférée sur Linux est donc de configurer votre postfix pour utiliser un relaishost, qui est effectué par une ligne de

relaishost = smtp.example.com

in /etc/postfix/main.cf

Cependant, dans le scénario de l'OP, je soupçonne en quelque sorte que c'est un travail que son équipe d'hébergement aurait dû faire


0 commentaires