Domanda

Ho codice,

 System.Web.Mail.MailMessage oMailMessage = new MailMessage();
            oMailMessage.From = strFromEmaild;
            oMailMessage.To = strToEmailId;
            oMailMessage.Subject = strSubject;
            oMailMessage.Body = strBody;
            SmtpMail.SmtpServer = "localhost";
            SmtpMail.Send(oMailMessage);

(tutte le variabili hanno valori)

Ho installato SMTP servizi virtuali. motivo per cui è in grado di inviare messaggi di posta elettronica. il motivo per cui non funziona ??

Modifica

public bool SendMail(string strToEmailId, string strFromEmaild, string strSubject, string strBody)
{
    try
    {
        System.Web.Mail.MailMessage oMailMessage = new MailMessage();
        oMailMessage.From = strFromEmaild;
        oMailMessage.To = strToEmailId;
        oMailMessage.Subject = strSubject;
        oMailMessage.Body = strBody;
        SmtpMail.SmtpServer = "SERVERNAME";
        SmtpMail.Send(oMailMessage);

        return true;
     }
     catch (Exception ex)
     {
         return false;
     }
 }

Ho questo codice. Si sta eseguendo bene e sta tornando vero, ma io non sto ricevendo alcuna e-mail nella casella di posta.

Che altro potrebbe essere sbagliato?

Come alcuni messaggi in posta scartata Dir in C: \ Inetpub \ Mailroot \ posta scartata anche in Directory coda ottenere alcune mail qui ... che cosa vuol dire .. ??

ho scoperto che la posta solo può inviate ad account gmail ... perché è?

È stato utile?

Soluzione

Determinare quali l'errore è:

try
{
 SmtpMail.Send(oMailMessage);
}
catch (Exception ex)
{
//breakpoint here to determine what the error is:
Console.WriteLine(ex.Message);
}

Da qui, si prega di modificare la tua domanda con quel dettagli dell'eccezione.

Altri suggerimenti

Come detto da altri, il codice è bene ed è più probabile che qualcosa nella vostra configurazione SMTP o forse il tuo client di posta elettronica il vostro inviare le e-mail di prova a loro è la marcatura come spam. Se si tratta di spam, bene che è facile enoughto capire. Se si tratta di qualcosa con l'e-mail, si può andare alla cartella mailroot e la loro sarà lì alcune cartelle con i file di posta elettronica insieme a una descrizione. Vedere se c'è qualcosa nella cartella Posta scartata o la cartella di coda e li aprono in notepad e visualizzare ciò che l'errore è dato per il motivo per cui non sono stati inviati.

La sua difficile da dire, ma una possibilità è che non hai abilitato l'accesso anonimo sul server virtuale SMTP. Vai alla finestra di dialogo delle proprietà del server virtuale, selezionare la scheda di accesso, fare clic sul pulsante di controllo di accesso, e fare in modo che l'accesso anonimo sia abilitato.

Non sembra essere nulla di sbagliato in modo funzionale con il vostro programma. E 'probabile che un problema di configurazione tra il programma e il server di posta. Vorrei provare la seguente per diagnosticare il problema.

  1. Avvolgere il codice in un blocco try / catch e vedere se il messaggio di eccezione contiene informazioni utili
  2. Usa 127.0.0.1 invece di localhost solo per escludere nulla pazzo
  3. Assicurati che il tuo server SMTP è in esecuzione sulla porta standard (25 credo)

Ciao è possibile seguire il seguente codice:

try
        {
            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            client.EnableSsl = true;
            client.Timeout = 100000;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.Credentials = new NetworkCredential("your gmail id", "password");
            MailMessage msg = new MailMessage();
            msg.To.Add(textBoxTo.Text);
            msg.From = new MailAddress("your gmail id");
            msg.Subject = textBoxSubject.Text;
            msg.Body = textBoxMsg.Text;
            Attachment data = new Attachment(textBoxAttachment.Text);
            msg.Attachments.Add(data);
            client.Send(msg);
            MessageBox.Show("Successfully Sent Message.");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
       }

hai provato 127.0.0.1 al posto di localhost? ho anche provato che il servizio SMTP è in funzione, controlla questo collegamento per i particolari.

Nel server virtuale SMTP Aggiungere limitazioni di inoltro e il controllo di connessione in modo che nessuna delle connessioni esterne sono ammessi

entrare descrizione dell'immagine qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top