7
votes

AVERTISSEMENT: Mail () [Fonction.Mail]: Réponse du serveur SMTP: 553 Nous ne relâchons pas de courrier non local, désolé

Le script suivant envoie un courrier électronique à l'aide de la fonction code> code>. Mais je ne peux pas envoyer d'envoyer un e-mail.uppon Cliquez sur Soumettre code> Ceci est affiché:

<?php 
if( isset( $_REQUEST['email'] ) ) {
    $email = $_REQUEST['email'];
    $subject = $_REQUEST['subject'];
    $message = $_REQUEST['message'];
    mail("me@gmail.com" , $subject , $message , "From:".$email );
    echo "mail sent successfully";
}  else {
     echo "<form method = 'post' action = 'feedback.php'>
     Email of sender : <input name = 'email' type = 'text' /> <br/>
     Subject : <input name = 'subject' type = 'text'/> <br/>
     Enter your feedback here : <textarea name = 'message' rows = 15 cols = 40 > </textarea> <br/>
     <input type = 'submit'/>
     </form>";
   }
?>


2 commentaires

Vous avez deux questions complètement non liées ici. Segmenter.


Pour votre deuxième question, c'est la manière dont les variables sont utilisées dans PHP.


6 Réponses :


5
votes

AVERTISSEMENT: Mail () [Fonction.Mail]: Réponse du serveur SMTP: 553 Nous ne relançons pas de courrier non local, désolé. Dans e: \ xampp \ htdocs \ feedback.php sur la ligne 19 courrier envoyé avec succès

Cela signifie que votre serveur n'est pas correctement configuré. Il devrait être en mesure d'envoyer des mails à travers un smarthost qui permet de relâcher votre système. Sur un serveur réel, il est probable que le MTA fonctionne sur localhost .

Dis aussi pourquoi nous devons écrire $ sujet, $ Message i.e avec la connexion $ dans l'argument de messagerie, car nous avons déclaré $ e-mail, $ Message, etc., juste ci-dessus. Pourquoi ne pouvons-nous pas simplement écrire un message, courrier électronique, .. sans le signe dollar?

C'est parce que les variables sont préfixées avec $ en php.


1 commentaires

Même après l'avoir hébergé sur un serveur Web, je suis incapable de recevoir des e-mails. Ce pourrait être la raison de cela. ici est le script



1
votes

Le script suivant envoie un courrier électronique à l'aide de la fonction Mail. Mais je ne peux pas envoyer de courrier électronique. Cliquez sur Soumettre Ceci est affiché: p>

Le serveur SMTP empêche l'envoi de courrier à travers celui-ci lorsqu'il n'est pas issu de la machine / domaine local. p>

Ceci est pour empêcher les spammeurs à l'aide du serveur SMTP à envoyer du courrier. (relais ouvert). P>

_Asalo Dis pourquoi nous devons écrire $ sujet, $ Message I.e avec la connexion $ dans l'argument de messagerie, puisque nous avons déclaré $ courrier électronique, $ Message, etc., juste ci-dessus. Pourquoi ne pouvons-nous pas simplement écrire un message, courrier électronique, .. sans le signe dollar _? P> BlockQuote>

Vous n'avez pas à utiliser des variables. Strike> p>

mail("me@gmail.com" , $_REQUEST['subject'] , $_REQUEST['message'] , "From:".$_REQUEST['email'] );


4 commentaires

Il le fait s'il veut utiliser des données que l'utilisateur soumis sous un formulaire.


@Peehaa: Veuillez réparer votre deuxième partie. Cela pourrait conduire à de mauvaises idées.


@CEM KALYONCU: Quelle deuxième partie? La partie que je viens de changer? : P


Même après l'avoir hébergé sur un serveur Web, je suis incapable de recevoir des emails .Qu'est-ce que cela pourrait être la raison de cela. ici est Le script



5
votes
  1. Vous utilisez XAMPP qui par défaut est livré avec Mercury, qui n'est pas configuré pour envoyer un courrier à un autre serveur par défaut. C'est fondamentalement là pour le débogage. Les instructions existent pour la configurer pour le faire, mais Windows + Apache n'est généralement meilleure que comme environnement de débogage de mon expérience.

  2. Les variables PHP ont tous $ avant eux. C'est ce qu'on appelle un sigil . C'est ce qui les distingue, disons, constantes, définitions de classe et fonctions. Si vous souhaitez attribuer une valeur, puis envoyez-la dans une fonction, vous devez utiliser des variables. Vous pouvez utiliser définir pour définir une constante si elle est assez importante, mais croyez-moi, ces situations sont rares et vous devriez généralement les éviter.

    Vous pouvez également le faire, cependant: xxx


4 commentaires

Même après l'avoir hébergé sur un serveur Web, je suis incapable de recevoir des emails .Qu'est-ce que cela pourrait être la raison de cela. ici est Le script


Avez-vous confirmé que votre serveur a un serveur de messagerie? Envoyez-vous l'email à une adresse e-mail de connaissance? Que se passe-t-il lorsque vous appelez simplement $ res = mail (, "Sujet", "Corps"); echo $ res? 'Mail retourné true': 'Mail retourné false'; ?


Vous liez pour poster des instructions pour résoudre ce problème est mort @cwallenpoole


@Pie corrigé. Maintenant, il fait référence à l'archive Internet.



0
votes

Ce problème est dû à votre configuraton serveur. Maintenant, un serveur de jours arrête d'ouvrir les messages et la méthode que nous utilisons dans Core PHP pour l'envoi de messagerie est une méthode de relais ouvert. Le relais ouvert réduit le spam. C'est le réson que vous obtenez ce message d'erreur, essayez la bibliothèque de diffusion comme Swift Mail pour l'envoi de mails de votre SMTP


0 commentaires

17
votes

resolvendo: Dans le menu XAMPP,
Accédez à Mercury Admin -> Menu de configuration -> Serveur Mercurys SMTP -> Contrôle de la connexion. Dans cette fenêtre, retirez la coche de la case. Voir ci-dessous:

Entrez la description de l'image ici

Puis dans le fichier php.ini:

[Fonction mail] SMTP = 127.0.0.1 <-------------------------------Chage localhost sur IP local

smtp_port = 25


0 commentaires

0
votes

Si vous utilisez Windows + XAMPP Installation: En effet, le service de mercure est déjà en cours d'exécution et il est impossible d'envoyer un courrier électronique à l'extérieur du localhost. Allez au panneau de commande XAMMP et arrêtez le service de mercure. J'espère que cela aide.


0 commentaires