2016-10-07 9 views
0

У меня есть сервер в облаке (asp.net), и я устанавливаю mailkit, чтобы предоставить моим клиентам возможность отправлять электронные письма из моего приложения со своей учетной записью электронной почты.mailkit sendMail сомнения

Одна из моих проблем является электронной почтой, он может отправить 3 сообщения электронной почты, а затем на следующий адрес электронной почты отклоняется сервер:

«Сообщение: Попытка подключения не удалась, поскольку подсоединенная партия сделала не правильно ответить после определенного периода времени, или установленное соединение не удалось, поскольку подключенный хозяин не смог ответить 213.190.193.29:25"

Другая проблема заключается в том, что они отправляют его почту, и он recieves в „СПАМ“.

Может мне помочь?

+0

Можете ли вы показать нам свой код? Может быть трудно диагностировать ошибку, когда мы не знаем вашу реализацию. Что касается писем, помеченных как спам, то есть на стороне получателя. Ваш адрес электронной почты должен быть добавлен в список безопасных отправителей. – user1666620

+0

Я сегодня не работаю в офисе. Завтра поставлю код! Мое приложение посылает по электронной почте тест, такой как Outlook, на тот же адрес электронной почты, чтобы проверить соединение .. странно тот же адрес предполагает спам .. –

+0

У SMTP-серверов часто есть предел относительно количества раз, когда вы можете подключиться к нему за короткий промежуток времени время. Это, скорее всего, проблема. – jstedfast

ответ

0
{ 
     emailID = ""; 
     // Nova Mensagem 
     var message = new MimeMessage(); 
     try 
     { 
      // Acede aos parâmetros do email caso este seja do gestobrigweb gmail.com 
      if (emailSettings.email == "[email protected]") { 
       EmailProvider provider = new EmailProviders().GetEmailProvider(Convert.ToInt32(ConfigurationManager.AppSettings["gestObrigWebProviderID"])); 

       if (emailSettings.provider == null) 
        emailSettings.provider = provider; 
      } 

      // UserName 
      string userName = emailSettings.email; 
      // Password 
      if (userPass == "") 
       userPass = cripter.Decrypt(emailSettings.pass); 

      // From 
      message.From.Add(new MailboxAddress(emailSettings.email, emailSettings.email)); 

      // TO 
      if (recipient.Contains(";")) 
       foreach (string recipt in recipient.Split(';')) 
        message.To.Add(new MailboxAddress(recipt, recipt)); 
      else 
       if (recipient.Contains(",")) 
        foreach (string recipt in recipient.Split(',')) 
         message.To.Add(new MailboxAddress(recipt, recipt)); 
       else 
        message.To.Add(new MailboxAddress(recipient, recipient)); 


      // Se Assume CC 
      if (assumeCC) 
       message.Cc.Add(new MailboxAddress(emailSettings.email,emailSettings.email)); 

      // Destinatário 
      if (cc != "") 
      { 
       if (cc.Contains(";")) 
        foreach (string emailCC in cc.Split(';')) 
        message.Cc.Add(new MailboxAddress(emailCC,emailCC)); 
       else 
        message.Cc.Add(new MailboxAddress(cc, cc)); 
      } 

      // Assunto 
      message.Subject = subject; 

      // Body (Mensagem) 
      var bodyBuilder = new BodyBuilder(); 
      bodyBuilder.HtmlBody = body; 
      message.Body = bodyBuilder.ToMessageBody(); 

      // Envio 
      using (var client = new SmtpClient()) 
      { 
       // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS) 
       client.ServerCertificateValidationCallback = (s, c, h, e) => true; 

       client.Connect(emailSettings.emailServer, emailSettings.serviceType, false); 

       // Note: since we don't have an OAuth2 token, disable 
       // the XOAUTH2 authentication mechanism. 
       client.AuthenticationMechanisms.Remove("XOAUTH2"); 

       // Note: only needed if the SMTP server requires authentication 
       client.Authenticate(userName, userPass); 

       client.Send(message); 
       client.Disconnect(true); 
       return true; 
      } 

     }