Как пропустить символ & при чтении электронной почты из Gmail в C # с помощью imapclient - PullRequest
0 голосов
/ 08 февраля 2019

Я работаю в пакетном процессе, который написан на c #, читает электронную почту из моей учетной записи Gmail и сохраняет данные в базе данных.Я использую HigLabo.Net.Mail и ImapClient для чтения электронной почты.Один из моих форматов электронной почты содержит символ «&», поэтому после символа «&» он читается как HTML или что-то еще, чего я не знаю.Из-за этого я не получаю электронное письмо должным образом.Может ли кто-нибудь помочь мне, как это исправить?

Извините, я не могу показать всю электронную почту, электронная почта выглядит примерно так

"Полу-меблированная квартира 3BHK на продажу в Хеббале, Бангалор на бульваре L & T Raintree.... "

при чтении преобразуется в -

" Полу-меблированная квартира 3BHK для продажи в Хеббале, Бангалор на Lcolor: # 010101; ширина: 380px ;; line-height: 18px .......... "

из-за некоторой угрозы безопасности, я не могу показать весь код здесь .. код выглядит примерно так

using (ImapClient client = new ImapClient("imap.gmail.com"))
        {
            client.Port = 993;
            client.Ssl = true;


            client.UserName = "email";
            client.Password = "password";


            Console.WriteLine("Connecting Mail Server.......");
            Console.WriteLine("Please wait while connecting..........");
            try
            {
                var flag = client.Authenticate();
                if (flag == true)
                {
                    var AllFolder = client.GetAllFolders();

                    MailMessage msg;

                    //Select folder
                    ImapFolder folder = client.SelectFolder("INBOX");

                    // ImapFolder folder = client.SelectFolder("Folder Name");

                    //Search Unread
                    SearchResult list = client.ExecuteSearch("UNSEEN UNDELETED");
                    if (list.MailIndexList.Count > 0)
                    {
                        //Get all unread mail
                        for (int i = list.MailIndexList.Count - 1; i >= 0; i--)
                        {

                            msg = client.GetMessage(list.MailIndexList[i]);
                            bool b = msg.IsHtml;
                            StoreEmailToDatabse(msg);
                            // break;
                        }
                    }




public static void StoreEmailToDatabse(MailMessage msg)
        {
            sender = msg.From.ToString();

        subject = msg.Subject.ToString();
        edate = msg.Date.Day + "-" + msg.Date.Month + "-" + msg.Date.Year;
        body = msg.BodyText.ToString();

        //int index = body.IndexOf("&");
        //body = .Skip(index);
        string propId = "";
        string name = "";
        string email = "";
        string phone = "";
        string message = "";
        string message1 = "";
        string livservLink = "";
        int p;

        try
        {
            // MagicBricks
            if (sender.Contains("@magicbricks.com"))
            {
                if (subject.Contains("Potential Lead :"))
                {
                    // Prop Id
                    body = msg.BodyText.ToString().Replace("\r\n", "").Replace("\t", "");
                    body.ToCharArray();

                    propId = "";
                    p = body.IndexOf("ID:") + 3;
                    for (int i = p; i <= body.Length - 1; i++)
                    {
                        if (body[i] != ',')
                        {

                            {
                                propId = propId + body[i];
                            }
                        }
                        else
                        {
                            break;
                        }
                    }

                    // Name

                    name = "";
                    p = body.IndexOf("Name:") + 12;
                    for (int i = p; i <= body.Length - 1; i++)
                    {
                        if (body[i] != '<')
                        {
                            name
                            name = name + body[i];
                        }
                        else
                        {
                            break;
                        }
                    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...