2010-01-31 6 views
4

J'ai récemment assumé la responsabilité de m'occuper d'un site Web de clients qui a été construit dans asp.net par un ex-employé. (qui est parti à la hâte pour travailler pour ces clients!)Comment savoir quel serveur SMTP est utilisé?

La société va passer à une plate-forme PHP dans un avenir pas si lointain, mais jusque là, ils ont des problèmes de livraison de courrier électronique. NOTE: Je ne maîtrise pas asp.net

Maintenant, aucun des codes de ces sites clients n'a été modifié récemment. Nous les hébergeons sur un compte d'hébergement revendeur auprès de Namesco au Royaume-Uni.

Je crois que le problème est que le serveur SMTP ne permet pas ces emails. Cependant, je ne peux pas trouver où l'adresse SMTP est définie dans le code?

Quelques informations générales sur ce client configuration:

Ils ont deux sites le site principal qui est le domaine se termine par .co.uk Ensuite, un séparé le site qui est le domaine se termine par .tv

Le. co.uk et .tv code pour les sites web sites est exactement le même. Les e-mails .co.uk arrivent mais les e-mails .tv se sont soudainement arrêtés.

Lorsqu'un client potentiel remplit les formulaires Web et les appels envoyés. Le script appelle une base de données qui ajoute du texte supplémentaire à l'e-mail et ajoute une adresse FROM:

E.g. [email protected] [email protected]

Si l'adresse d'expéditeur est modifiée de la .tv aux .co.uk puis les e-mails envoyés depuis les sites .tv webforms n'arrivent avec succès. Donc, pour moi, le problème est que le serveur SMTP n'aime plus l'adresse .tv FROM?

Ainsi, le client reçoit toujours ses e-mails, mais cela perturbe le filtrage des boîtes aux lettres qu'il a configuré. Donc, ils veulent travailler comme avant.

Voici le code dans le fichier aspx.cs pour la page Contactez-nous:

using System; 
    using System.Collections.Generic; 
    using System.Web; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Data; 
    using System.Data.Sql; 
    using System.Data.SqlClient; 
    using System.Data.SqlTypes; 
    using System.Configuration; 
    using System.Web.Mail; 
    using System.Text; 


public partial class contactus : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     this.Master.FindControl("divMasterContactForm").Visible = false; 
     this.Master.FindControl("contactFormHeader").Visible = false; 
    } 
    protected void butSubmit_Click(object sender, ImageClickEventArgs e) 
    { 
     string strConnection, strCommand, strPage; 

     strPage = Request.Url.ToString(); 
     strConnection = ConfigurationManager.ConnectionStrings["dbString"].ConnectionString; 
     strCommand = "SELECT * FROM [mailOptions] WHERE [url] LIKE 'customerswebsite.tv'"; 
     StringBuilder strBody = new StringBuilder(); 

     SqlConnection myConnection = new SqlConnection(strConnection); 

     SqlCommand myCommand = new SqlCommand(strCommand); 
     myCommand.Connection = myConnection; 

     myConnection.Open(); 

     try 
     { 
      SqlDataReader myReader = myCommand.ExecuteReader(); 

      while (myReader.Read()) 
      { 

       strBody.Append("<html><body><font face='Arial'><br>"); 
       strBody.Append(txtQuery.Text); 
       strBody.Append("<br><br>Regards,<br><br>"); 
       strBody.Append(txtFirstName.Text + " " + txtLastName.Text); 
       strBody.Append("<br><br>Telephone number: " + txtPhone.Text); 
       strBody.Append("<br><br>Mobile Number: " + txtMobile.Text); 
       strBody.Append("<br><br>Email Address: <a href=mailto:" + txtEmail.Text + ">" + txtEmail.Text + "</a></font></body></html>"); 


       MailMessage msgMail = new MailMessage(); 
       msgMail.To = myReader["to"].ToString(); 
       msgMail.Bcc = "[email protected]"; 
       msgMail.From = myReader["from"].ToString(); 
       msgMail.Subject = ddQueryType.SelectedValue + " From: " + txtFirstName.Text + " " + txtLastName.Text + ". Generated from " + myReader["leadSource"].ToString(); 
       msgMail.BodyFormat = MailFormat.Html; 
       msgMail.Body = strBody.ToString(); 
       //lblConfirmation.Text = strBody.ToString(); 
       SmtpMail.Send(msgMail); 

       panForm.Visible = false; 
       panConfirm.Visible = true; 
       lblSubject.Text = ddQueryType.SelectedValue; 
       lblFrom.Text = txtEmail.Text; 
       lblBody.Text = txtQuery.Text; 
       lblFirstName.Text = txtFirstName.Text; 
       lblLastName.Text = txtLastName.Text; 
       lblDate.Text = DateTime.Now.ToLongDateString(); 
       lblTime.Text = DateTime.Now.ToShortTimeString(); 
      } 
      myReader.Close(); 
     } 
     catch 
     { 
      lblConfirmation.Text = "Sorry I broke part way through, please call us instead on the number above."; 
     } 

     myConnection.Close(); 
    } 
    } 

Actuellement, mon problème est que je ne peux pas tester ou suivre le chemin de ces e-mails que je ne peux pas trouver quel serveur SMTP les e-mails utilisent-ils? Toute aide appréciée

+0

Quelqu'un peut-il répondre à cette question: Si l'emplacement du serveur SMTP n'est pas déclaré quelque part dans ce code, comment envoie-t-il les emails? – bbacarat

Répondre

3

Il y a de fortes chances que les détails du serveur SMTP soient stockés dans le fichier web.config. Voyez si vous pouvez trouver un tag <system.net> dans le fichier web.config.

<system.net> 
     <mailSettings> 
      <smtp from="[email protected]"> 
       <network host="SMTP.SITE.COM" port="25" userName="[email protected]" password="yourPassword"/> 
      </smtp> 
     </mailSettings> 
    </system.net> 
+0

Je vais vérifier ça demain matin quand je serai au bureau. Cependant, je suis assez sûr que j'ai cherché le fichier web.config pour le mot smtp et rien n'est revenu. Je vais vérifier encore si acclamations. – bbacarat

+1

Cool. À défaut, dans Visual Studio, cliquez sur le bouton de configuration ASP.NET. L'icône est la terre et un marteau et est en haut de l'Explorateur de solutions (sur le côté droit). Cela vous permet de configurer votre application ASP.NET via un navigateur (la plupart des paramètres modifient simplement le fichier web.config pour vous). Vous pouvez également y modifier les paramètres SMTP. Si vous ne trouvez pas de détails dans le fichier web.config, jetez-y un œil et voyez si cela vous aide. – keyboardP

+0

Salut Là, j'ai vérifié le fichier web.config et il n'y a pas ou une balise n'importe où dans le fichier? Je suis également allé dans Visual Studio et j'ai cliqué sur le bouton de configuration ASP.NET. Lorsque je regarde le "Configurer les paramètres SMTP" le seul ensemble d'options est le port du serveur? Est-ce inhabituel? – bbacarat

0

Vous pouvez utiliser un réseau renifleur tel que Wireshark (gratuit) pour suivre le trafic SMTP, mais assurez-vous que vous avez la permission de la direction d'utiliser un tel outil avant de télécharger/installer/utiliser: ces outils ont des utilisations coquines comme ainsi que ceux bénins.

+0

Merci pour ça. Juste jeté un coup d'oeil à leurs didacticiels vidéo whoosh! directement au-dessus de ma tête. J'aurai besoin de café fort pour avoir la tête ronde ce lundi matin – bbacarat

0

Assurez-vous que DNS n'est pas le problème. Est-ce que l'hôte de courrier qui est censé recevoir votre email de test n'accepte plus les mails si une recherche DNS inverse pour le domaine d'envoi ne liste pas votre site, ou peut-être qu'il n'y a pas d'enregistrement PTR? Par coïncidence, j'ai juste eu le même problème la semaine dernière.Les courriels qui ont été envoyés avec succès ont soudainement cessé de fonctionner parce que le serveur était apparemment listé en gris pour ces raisons.

Si votre application utilise un serveur SMTP local, vous verrez des erreurs SMTP dans les fichiers d'événements Windows.

+0

Je n'ai pas d'erreur en envoyant le courrier. Ils n'arrivent tout simplement pas lorsque la base de données définit l'adresse FROM à [email protected], changez-la en .co.uk et ils arrivent très bien. – bbacarat

+0

Je comprends cela. Le serveur SMTP fera heureusement la queue dans votre courrier, mais il n'est pas capable de le relayer. Il ne peut pas rapporter cette situation au client de manière synchrone. Dans mon cas, les mails se sont retrouvés dans le dossier Queue du serveur SMTP (MS) et après 24 heures ont été déplacés dans le dossier badmail. – cdonner

+0

Salut cdonner, merci pour votre aide avec ceci, s'il vous plaît pouvez-vous juste clarifier votre commentaire (en termes simples) "Est-ce que l'hôte de courrier qui est censé recevoir votre e-mail de test n'accepte pas les mails? Comment puis-je travailler si l'application utilise un serveur SMTP local? – bbacarat

Questions connexes