Я работаю в пакетном процессе, который написан на 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;
}
}