diff --git a/.gitignore b/.gitignore index 5863248..fa97a93 100644 --- a/.gitignore +++ b/.gitignore @@ -48,6 +48,7 @@ ipch/ *.psess *.vsp *.vspx +.vs # Guidance Automation Toolkit *.gpState diff --git a/ActiveUp.Net-vs2017.sln b/ActiveUp.Net-vs2017.sln new file mode 100644 index 0000000..e54a957 --- /dev/null +++ b/ActiveUp.Net-vs2017.sln @@ -0,0 +1,639 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.10 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Class Library", "Class Library", "{629D406B-F46A-4A9D-A31F-C5956E0AB157}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Queuing Application", "Queuing Application", "{C95F2CCE-9CA6-45A0-BFE6-4E737072B58F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Copyright", "_Copyright", "{E9A8CFFE-4FAE-4921-A36A-D15DAA105561}" + ProjectSection(SolutionItems) = preProject + COPYRIGHT.txt = COPYRIGHT.txt + LICENSE.txt = LICENSE.txt + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{33BAFFED-FB5D-48EF-85D9-CDE2EB2CFA64}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.Mail", "Class Library\ActiveUp.Net.Mail\ActiveUp.Net.Mail.csproj", "{2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.OpenPGP", "Class Library\ActiveUp.Net.OpenPGP\ActiveUp.Net.OpenPGP.csproj", "{00CB8737-BA35-4775-AFA4-B8CD446AB83F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.WhoIs", "Class Library\ActiveUp.Net.WhoIs\ActiveUp.Net.WhoIs.csproj", "{1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.Dns", "Class Library\ActiveUp.Net.Dns\ActiveUp.Net.Dns.csproj", "{A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveQLibrary", "Queuing System\ActiveQLibrary\ActiveQLibrary.csproj", "{4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveQWindowsService", "Queuing System\ActiveQWindowsService\ActiveQWindowsService.csproj", "{E2DB3912-543F-4971-AAE0-2764FF746B34}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveQConfiguration", "Queuing System\ActiveQConfiguration\ActiveQConfiguration.csproj", "{9A55170C-A322-4783-B70D-E1E088E281D6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveQManager", "Queuing System\ActiveQManager\ActiveQManager.csproj", "{01406851-4718-47E4-9FA3-B88CEE494282}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveQInstallCreateDefaultConfig", "Queuing System\ActiveQInstallCreateDefaultConfig\ActiveQInstallCreateDefaultConfig.csproj", "{03838A8B-B69A-4105-80DF-0B477B362CCF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveQInstallInteractDesktop", "Queuing System\ActiveQInstallInteractDesktop\ActiveQInstallInteractDesktop.csproj", "{90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveQInstallLaunchService", "Queuing System\ActiveQInstallLaunchService\ActiveQInstallLaunchService.csproj", "{9474D5ED-903B-4AD3-A31C-1835B47A6069}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveQInstallDescription", "Queuing System\ActiveQInstallDescription\ActiveQInstallDescription.csproj", "{B100399D-BE6B-4339-92AD-3175AE808D0E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveQTestConsole", "Queuing System\ActiveQTestConsole\ActiveQTestConsole.csproj", "{475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.Groupware", "Class Library\ActiveUp.Net.Groupware\ActiveUp.Net.Groupware.csproj", "{C646ED2B-50B7-4178-BEFA-657F1259251F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.Common", "Class Library\ActiveUp.Net.Common\ActiveUp.Net.Common.csproj", "{3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.Imap4", "Class Library\ActiveUp.Net.Imap4\ActiveUp.Net.Imap4.csproj", "{6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.Nntp", "Class Library\ActiveUp.Net.Nntp\ActiveUp.Net.Nntp.csproj", "{FF4B354A-213B-415A-B8F7-582BAAFABC8C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.Pop3", "Class Library\ActiveUp.Net.Pop3\ActiveUp.Net.Pop3.csproj", "{3F01CF20-C49D-44A9-AA57-68F04915FE97}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.Smtp", "Class Library\ActiveUp.Net.Smtp\ActiveUp.Net.Smtp.csproj", "{D9BCD15E-A438-4554-89D3-1CF122167FDD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net.Tests", "Class Library\ActiveUp.Net.Tests\ActiveUp.Net.Tests.csproj", "{5AD3438E-9024-4908-BA15-92726159C4FB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveUp.Net", "Class Library\ActiveUp.Net\ActiveUp.Net.csproj", "{25DA9502-B959-4E81-9368-471AE231BCC0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + MailSystem Dev|.NET = MailSystem Dev|.NET + MailSystem Dev|Any CPU = MailSystem Dev|Any CPU + MailSystem Dev|Mixed Platforms = MailSystem Dev|Mixed Platforms + Release|.NET = Release|.NET + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Retail|.NET = Retail|.NET + Retail|Any CPU = Retail|Any CPU + Retail|Mixed Platforms = Retail|Mixed Platforms + Trial|.NET = Trial|.NET + Trial|Any CPU = Trial|Any CPU + Trial|Mixed Platforms = Trial|Mixed Platforms + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Debug|.NET.ActiveCfg = Debug|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Release|.NET.ActiveCfg = Release|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Release|Any CPU.Build.0 = Release|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Release|Mixed Platforms.ActiveCfg = Release|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Release|Mixed Platforms.Build.0 = Release|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Retail|.NET.ActiveCfg = Retail|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Retail|Any CPU.Build.0 = Retail|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Retail|Mixed Platforms.ActiveCfg = Retail|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Retail|Mixed Platforms.Build.0 = Retail|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Trial|.NET.ActiveCfg = Trial|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Trial|Any CPU.Build.0 = Trial|Any CPU + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Trial|Mixed Platforms.ActiveCfg = Trial|Compact + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6}.Trial|Mixed Platforms.Build.0 = Trial|Compact + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Debug|.NET.ActiveCfg = Debug|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Release|.NET.ActiveCfg = Release|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Release|Any CPU.Build.0 = Release|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Retail|.NET.ActiveCfg = Retail|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Retail|Any CPU.Build.0 = Retail|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Trial|.NET.ActiveCfg = Trial|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Trial|Any CPU.Build.0 = Trial|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {00CB8737-BA35-4775-AFA4-B8CD446AB83F}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Debug|.NET.ActiveCfg = Debug|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Release|.NET.ActiveCfg = Release|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Release|Any CPU.Build.0 = Release|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Retail|.NET.ActiveCfg = Retail|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Retail|Any CPU.Build.0 = Retail|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Trial|.NET.ActiveCfg = Trial|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Trial|Any CPU.Build.0 = Trial|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Debug|.NET.ActiveCfg = Debug|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Release|.NET.ActiveCfg = Release|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Release|Any CPU.Build.0 = Release|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Retail|.NET.ActiveCfg = Retail|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Retail|Any CPU.Build.0 = Retail|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Trial|.NET.ActiveCfg = Trial|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Trial|Any CPU.Build.0 = Trial|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Debug|.NET.ActiveCfg = Debug|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Release|.NET.ActiveCfg = Release|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Release|Any CPU.Build.0 = Release|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Retail|.NET.ActiveCfg = Retail|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Retail|Any CPU.Build.0 = Retail|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Trial|.NET.ActiveCfg = Trial|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Trial|Any CPU.Build.0 = Trial|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Debug|.NET.ActiveCfg = Debug|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Release|.NET.ActiveCfg = Release|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Release|Any CPU.Build.0 = Release|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Retail|.NET.ActiveCfg = Retail|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Retail|Any CPU.Build.0 = Retail|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Trial|.NET.ActiveCfg = Trial|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Trial|Any CPU.Build.0 = Trial|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {E2DB3912-543F-4971-AAE0-2764FF746B34}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Debug|.NET.ActiveCfg = Debug|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Release|.NET.ActiveCfg = Release|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Release|Any CPU.Build.0 = Release|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Retail|.NET.ActiveCfg = Retail|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Retail|Any CPU.Build.0 = Retail|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Trial|.NET.ActiveCfg = Trial|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Trial|Any CPU.Build.0 = Trial|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {9A55170C-A322-4783-B70D-E1E088E281D6}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Debug|.NET.ActiveCfg = Debug|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Release|.NET.ActiveCfg = Release|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Release|Any CPU.Build.0 = Release|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Retail|.NET.ActiveCfg = Retail|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Retail|Any CPU.Build.0 = Retail|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Trial|.NET.ActiveCfg = Trial|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Trial|Any CPU.Build.0 = Trial|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {01406851-4718-47E4-9FA3-B88CEE494282}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Debug|.NET.ActiveCfg = Debug|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Release|.NET.ActiveCfg = Release|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Release|Any CPU.Build.0 = Release|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Retail|.NET.ActiveCfg = Retail|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Retail|Any CPU.Build.0 = Retail|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Trial|.NET.ActiveCfg = Trial|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Trial|Any CPU.Build.0 = Trial|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {03838A8B-B69A-4105-80DF-0B477B362CCF}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Debug|.NET.ActiveCfg = Debug|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Release|.NET.ActiveCfg = Release|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Release|Any CPU.Build.0 = Release|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Retail|.NET.ActiveCfg = Retail|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Retail|Any CPU.Build.0 = Retail|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Trial|.NET.ActiveCfg = Trial|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Trial|Any CPU.Build.0 = Trial|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Debug|.NET.ActiveCfg = Debug|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Release|.NET.ActiveCfg = Release|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Release|Any CPU.Build.0 = Release|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Retail|.NET.ActiveCfg = Retail|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Retail|Any CPU.Build.0 = Retail|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Trial|.NET.ActiveCfg = Trial|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Trial|Any CPU.Build.0 = Trial|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {9474D5ED-903B-4AD3-A31C-1835B47A6069}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Debug|.NET.ActiveCfg = Debug|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Release|.NET.ActiveCfg = Release|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Release|Any CPU.Build.0 = Release|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Retail|.NET.ActiveCfg = Retail|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Retail|Any CPU.Build.0 = Retail|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Trial|.NET.ActiveCfg = Trial|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Trial|Any CPU.Build.0 = Trial|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {B100399D-BE6B-4339-92AD-3175AE808D0E}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Debug|.NET.ActiveCfg = Debug|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Release|.NET.ActiveCfg = Release|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Release|Any CPU.Build.0 = Release|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Retail|.NET.ActiveCfg = Retail|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Retail|Any CPU.Build.0 = Retail|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Trial|.NET.ActiveCfg = Trial|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Trial|Any CPU.Build.0 = Trial|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Debug|.NET.ActiveCfg = Debug|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Release|.NET.ActiveCfg = Release|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Release|Any CPU.Build.0 = Release|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Retail|.NET.ActiveCfg = Retail|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Retail|Any CPU.Build.0 = Retail|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Trial|.NET.ActiveCfg = Trial|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Trial|Any CPU.Build.0 = Trial|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {C646ED2B-50B7-4178-BEFA-657F1259251F}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Debug|.NET.ActiveCfg = Debug|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Release|.NET.ActiveCfg = Release|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Release|Any CPU.Build.0 = Release|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Retail|.NET.ActiveCfg = Retail|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Retail|Any CPU.Build.0 = Retail|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Trial|.NET.ActiveCfg = Trial|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Trial|Any CPU.Build.0 = Trial|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Debug|.NET.ActiveCfg = Debug|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Release|.NET.ActiveCfg = Release|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Release|Any CPU.Build.0 = Release|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Retail|.NET.ActiveCfg = Retail|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Retail|Any CPU.Build.0 = Retail|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Trial|.NET.ActiveCfg = Trial|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Trial|Any CPU.Build.0 = Trial|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Debug|.NET.ActiveCfg = Debug|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Release|.NET.ActiveCfg = Release|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Release|Any CPU.Build.0 = Release|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Retail|.NET.ActiveCfg = Retail|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Retail|Any CPU.Build.0 = Retail|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Trial|.NET.ActiveCfg = Trial|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Trial|Any CPU.Build.0 = Trial|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {FF4B354A-213B-415A-B8F7-582BAAFABC8C}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Debug|.NET.ActiveCfg = Debug|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Release|.NET.ActiveCfg = Release|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Release|Any CPU.Build.0 = Release|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Retail|.NET.ActiveCfg = Retail|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Retail|Any CPU.Build.0 = Retail|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Trial|.NET.ActiveCfg = Trial|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Trial|Any CPU.Build.0 = Trial|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {3F01CF20-C49D-44A9-AA57-68F04915FE97}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Debug|.NET.ActiveCfg = Debug|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.MailSystem Dev|.NET.ActiveCfg = MailSystem Dev|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.MailSystem Dev|Any CPU.ActiveCfg = MailSystem Dev|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.MailSystem Dev|Any CPU.Build.0 = MailSystem Dev|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.MailSystem Dev|Mixed Platforms.ActiveCfg = MailSystem Dev|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.MailSystem Dev|Mixed Platforms.Build.0 = MailSystem Dev|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Release|.NET.ActiveCfg = Release|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Release|Any CPU.Build.0 = Release|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Retail|.NET.ActiveCfg = Retail|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Retail|Any CPU.Build.0 = Retail|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Trial|.NET.ActiveCfg = Trial|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Trial|Any CPU.Build.0 = Trial|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {D9BCD15E-A438-4554-89D3-1CF122167FDD}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Debug|.NET.ActiveCfg = Debug|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.MailSystem Dev|.NET.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.MailSystem Dev|Any CPU.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.MailSystem Dev|Any CPU.Build.0 = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.MailSystem Dev|Mixed Platforms.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.MailSystem Dev|Mixed Platforms.Build.0 = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Release|.NET.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Release|Any CPU.Build.0 = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Retail|.NET.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Retail|Any CPU.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Retail|Any CPU.Build.0 = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Retail|Mixed Platforms.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Retail|Mixed Platforms.Build.0 = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Trial|.NET.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Trial|Any CPU.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Trial|Any CPU.Build.0 = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Trial|Mixed Platforms.ActiveCfg = Release|Any CPU + {5AD3438E-9024-4908-BA15-92726159C4FB}.Trial|Mixed Platforms.Build.0 = Release|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Debug|.NET.ActiveCfg = Debug|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Debug|.NET.Build.0 = Debug|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.MailSystem Dev|.NET.ActiveCfg = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.MailSystem Dev|.NET.Build.0 = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.MailSystem Dev|Any CPU.ActiveCfg = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.MailSystem Dev|Any CPU.Build.0 = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.MailSystem Dev|Mixed Platforms.ActiveCfg = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.MailSystem Dev|Mixed Platforms.Build.0 = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Release|.NET.ActiveCfg = Release|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Release|.NET.Build.0 = Release|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Release|Any CPU.Build.0 = Release|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Retail|.NET.ActiveCfg = Retail|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Retail|.NET.Build.0 = Retail|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Retail|Any CPU.ActiveCfg = Retail|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Retail|Any CPU.Build.0 = Retail|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Retail|Mixed Platforms.ActiveCfg = Retail|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Retail|Mixed Platforms.Build.0 = Retail|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Trial|.NET.ActiveCfg = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Trial|.NET.Build.0 = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Trial|Any CPU.ActiveCfg = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Trial|Any CPU.Build.0 = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Trial|Mixed Platforms.ActiveCfg = Trial|Any CPU + {25DA9502-B959-4E81-9368-471AE231BCC0}.Trial|Mixed Platforms.Build.0 = Trial|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {2BD4C73E-C8DB-420E-9505-96D3F3BCA7B6} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {00CB8737-BA35-4775-AFA4-B8CD446AB83F} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {1E4D8E5B-D422-47DC-9CF3-B8E88A4472AF} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {A82CE4DD-9B08-439C-BC28-CB7B2BFFA85C} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {4F0FD37F-0C57-46DD-A9E3-6A5A1FA12166} = {C95F2CCE-9CA6-45A0-BFE6-4E737072B58F} + {E2DB3912-543F-4971-AAE0-2764FF746B34} = {C95F2CCE-9CA6-45A0-BFE6-4E737072B58F} + {9A55170C-A322-4783-B70D-E1E088E281D6} = {C95F2CCE-9CA6-45A0-BFE6-4E737072B58F} + {01406851-4718-47E4-9FA3-B88CEE494282} = {C95F2CCE-9CA6-45A0-BFE6-4E737072B58F} + {03838A8B-B69A-4105-80DF-0B477B362CCF} = {C95F2CCE-9CA6-45A0-BFE6-4E737072B58F} + {90A0FFA4-A279-43D4-BFE7-14FA0F3274CE} = {C95F2CCE-9CA6-45A0-BFE6-4E737072B58F} + {9474D5ED-903B-4AD3-A31C-1835B47A6069} = {C95F2CCE-9CA6-45A0-BFE6-4E737072B58F} + {B100399D-BE6B-4339-92AD-3175AE808D0E} = {C95F2CCE-9CA6-45A0-BFE6-4E737072B58F} + {475CDE73-90F0-4DCF-8B6A-0B0A0FF37FC5} = {C95F2CCE-9CA6-45A0-BFE6-4E737072B58F} + {C646ED2B-50B7-4178-BEFA-657F1259251F} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {3A83AE95-C23F-48B4-9F1A-AD4B32C37B93} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {6BEE77DF-2DD2-41C3-BA16-60E20B1EDDCC} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {FF4B354A-213B-415A-B8F7-582BAAFABC8C} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {3F01CF20-C49D-44A9-AA57-68F04915FE97} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {D9BCD15E-A438-4554-89D3-1CF122167FDD} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + {5AD3438E-9024-4908-BA15-92726159C4FB} = {33BAFFED-FB5D-48EF-85D9-CDE2EB2CFA64} + {25DA9502-B959-4E81-9368-471AE231BCC0} = {629D406B-F46A-4A9D-A31F-C5956E0AB157} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BBCFB72D-84B7-4F14-BA2E-A464210881F7} + EndGlobalSection +EndGlobal diff --git a/Class Library/ActiveUp.Net.Common/Message.cs b/Class Library/ActiveUp.Net.Common/Message.cs index b5a1921..75662fe 100644 --- a/Class Library/ActiveUp.Net.Common/Message.cs +++ b/Class Library/ActiveUp.Net.Common/Message.cs @@ -542,7 +542,7 @@ public MimePart ToMimePart() /// public string ToMimeString() { - return ToMimeString(false); + return ToMimeString(true); } /// diff --git a/Class Library/ActiveUp.Net.Common/MimeBody.cs b/Class Library/ActiveUp.Net.Common/MimeBody.cs index 46a4357..a11682b 100644 --- a/Class Library/ActiveUp.Net.Common/MimeBody.cs +++ b/Class Library/ActiveUp.Net.Common/MimeBody.cs @@ -84,7 +84,7 @@ public string Text else return ProductHelper.GetTrialString(this._text, TrialStringType.LongText); #else - string ret = _text; + string ret = _text ?? ""; ret = ret.Replace("FLAGS (Seen)", string.Empty); return ret; #endif diff --git a/Class Library/ActiveUp.Net.Common/Parser.cs b/Class Library/ActiveUp.Net.Common/Parser.cs index 42b934e..4d8b006 100644 --- a/Class Library/ActiveUp.Net.Common/Parser.cs +++ b/Class Library/ActiveUp.Net.Common/Parser.cs @@ -34,7 +34,7 @@ namespace ActiveUp.Net.Mail #endif public static class Parser { - private static Encoding defaultEncoding = Encoding.GetEncoding("iso-8859-1"); + private static Encoding defaultEncoding = Encoding.UTF8; #region Methods @@ -117,20 +117,28 @@ private static ContentType GetContentType(string input) /// private static ContentDisposition GetContentDisposition(string input) { - ContentDisposition field = new ContentDisposition(); - //TODO: include TAB detection in Regex - field.Disposition = Regex.Match(input.Replace("\t", ""), @"(?<=: ?)\S+?(?=([;\s]|\Z))").Value; + var field = new ContentDisposition + { + //TODO: include TAB detection in Regex + Disposition = Regex.Match(input.Replace("\t", ""), @"(?<=: ?)\S+?(?=([;\s]|\Z))").Value + }; //TODO: include TAB detection in Regex Match parammatch = Regex.Match(input.Replace("\t", ""), @"(?<=;[ \t]?)[^;]*=[^;]*(?=(;|\Z))"); for (; parammatch.Success; parammatch = parammatch.NextMatch()) field.Parameters.Add(FormatFieldName(parammatch.Value.Substring(0, parammatch.Value.IndexOf('='))), parammatch.Value.Substring(parammatch.Value.IndexOf('=') + 1).Replace("\"", "").Trim('\r', '\n')); return field; } + [Obsolete("We are migrating ASCII default char structure to UTF8, please, use GetUtf8ByteCountOfPart() as a default.")] private static int GetASCIIByteCountOfPart(string part) { return Encoding.ASCII.GetByteCount(part); } + private static int GetUtf8ByteCountOfPart(string part) + { + return Encoding.UTF8.GetByteCount(part); + } + /// /// Parses the sub parts. /// @@ -138,27 +146,27 @@ private static int GetASCIIByteCountOfPart(string part) private static void ParseSubParts(ref MimePart part, Message message) { string boundary = part.ContentType.Parameters["boundary"]; - string parentPartAsciiBody = ToASCII(part.BinaryContent); + string parentPartUtf8Body = ToUtf8(part.BinaryContent); byte[] parentPartBinary = part.BinaryContent; Logger.AddEntry(typeof(Parser), "boundary : " + boundary); - string[] arrpart = Regex.Split(parentPartAsciiBody, @"\r?\n?" + Regex.Escape("--" + boundary)); + string[] arrpart = Regex.Split(parentPartUtf8Body, @"\r?\n?" + Regex.Escape("--" + boundary)); foreach (var strpart in arrpart) { if (string.IsNullOrWhiteSpace(strpart)) continue; - int bounaryByteLen = GetASCIIByteCountOfPart(parentPartAsciiBody.Substring(0, parentPartAsciiBody.IndexOf(strpart))); - int binaryPartLen = bounaryByteLen + GetASCIIByteCountOfPart(strpart); - parentPartAsciiBody = null; + int bounaryByteLen = GetUtf8ByteCountOfPart(parentPartUtf8Body.Substring(0, parentPartUtf8Body.IndexOf(strpart))); + int binaryPartLen = bounaryByteLen + GetUtf8ByteCountOfPart(strpart); + parentPartUtf8Body = null; //complete Part (incl. boundary) byte[] binaryPart = new byte[binaryPartLen]; Array.Copy(parentPartBinary, binaryPart, binaryPart.Length); //Body only (without Boundary) - byte[] binaryBody = new byte[GetASCIIByteCountOfPart(strpart)]; + byte[] binaryBody = new byte[GetUtf8ByteCountOfPart(strpart)]; Array.Copy(binaryPart, bounaryByteLen, binaryBody, 0, binaryBody.Length); //Remove Subpart from ParentPart @@ -171,7 +179,7 @@ private static void ParseSubParts(ref MimePart part, Message message) GC.WaitForPendingFinalizers(); parentPartBinary = tmp; - parentPartAsciiBody = ToASCII(parentPartBinary); + parentPartUtf8Body = defaultEncoding.GetString(parentPartBinary); tmp = null; if (!strpart.StartsWith("--") && !string.IsNullOrEmpty(strpart)) @@ -289,6 +297,8 @@ private static void DispatchPart(MimePart part, ref Message message) #endif } + // If is an empty content, return without add part. + if (part.BinaryContent.Length == 0 && part?.ContentName == null && string.IsNullOrWhiteSpace(part?.Filename)) return; // Anyway, this is a leaf part of the message. message.LeafMimeParts.Add(part); } @@ -316,7 +326,7 @@ private static void DecodePartBody(ref MimePart part) } else if (part.ContentTransferEncoding.Equals(ContentTransferEncoding.QuotedPrintable)) { - part.TextContent = Codec.FromQuotedPrintable(ToASCII(part.BinaryContent), charset); + part.TextContent = Codec.FromQuotedPrintable(ToUtf8(part.BinaryContent), charset); part.BinaryContent = Codec.GetEncoding(charset).GetBytes(part.TextContent); } else @@ -332,7 +342,7 @@ private static void DecodePartBody(ref MimePart part) private static void DecodeBase64Part(MimePart part, string charset) { - string text = ToASCII(part.BinaryContent); + string text = ToUtf8(part.BinaryContent); byte[] binary = null; #if !PocketPC try @@ -347,7 +357,7 @@ private static void DecodeBase64Part(MimePart part, string charset) binary = Convert.FromBase64String(text); } #endif - text = ToASCII(binary); + text = ToUtf8(binary); if (part.ContentDisposition != ContentDisposition.Attachment) text = Codec.GetEncoding(charset).GetString(binary, 0, binary.Length); @@ -461,10 +471,10 @@ public static string Unfold(string input) /// public static event OnBodyParsedEvent BodyParsed; - private static string ToASCII(byte[] data) + private static string ToUtf8(byte[] data) { const int BUFFER_SIZE = 2048; - StringBuilder sb = new StringBuilder(); + var sb = new StringBuilder(); for (int i = 0; i < data.Length; i += BUFFER_SIZE) sb.Append(ConvertByteBlock(data, i, Math.Min(BUFFER_SIZE, data.Length - i))); @@ -473,7 +483,7 @@ private static string ToASCII(byte[] data) private static string ConvertByteBlock(byte[] data, int start, int length) { - return Encoding.ASCII.GetString(data, start, length); + return Encoding.UTF8.GetString(data, start, length); } private static void ParseHeaderFields(MimePart part, int headerEnd) @@ -497,7 +507,7 @@ private static void ParseBody(byte[] binaryData, MimePart part, int bodyStart) { if (bodyStart < part.OriginalContent.Length) { - string body = part.OriginalContent.Substring(bodyStart); + var body = part.OriginalContent.Substring(bodyStart); part.BinaryContent = GetBinaryPart(binaryData, body); } } @@ -506,26 +516,30 @@ private static void ParseBody(byte[] binaryData, MimePart part, int bodyStart) /// Parses the MIME part. /// /// The data. + /// Message object to update /// public static MimePart ParseMimePart(byte[] binaryData, Message message) { - MimePart part = new MimePart(); - part.ParentMessage = message; - part.OriginalContent = ToASCII(binaryData); //ASCII content for header parsing + var part = new MimePart + { + ParentMessage = message, + OriginalContent = ToUtf8(binaryData) //UTF8 content for header parsing + }; try { // Separate header and body. - int headerEnd = Regex.Match(part.OriginalContent, @".(?=\r?\n\r?\n)").Index + 1; - int bodyStart = Regex.Match(part.OriginalContent, @"(?<=\r?\n\r?\n).").Index; + var headerEnd = Regex.Match(part.OriginalContent, @".(?=\r?\n\r?\n)").Index + 1; + var bodyStart = Regex.Match(part.OriginalContent, @"(?<=\r?\n\r?\n).").Index; - //TODO: remove this workaround - if (bodyStart == 0) + // Solve header only situations. + if (bodyStart == 0 && headerEnd == 1) { - int indexBody = part.OriginalContent.IndexOf("\r\n\r\n"); - if (indexBody > 0) - bodyStart = indexBody; + ParseHeaderFields(part, part.OriginalContent.Length); + return part; } + + // Process Header and Body if (part.OriginalContent.Length >= headerEnd) { ParseHeaderFields(part, headerEnd); @@ -533,12 +547,12 @@ public static MimePart ParseMimePart(byte[] binaryData, Message message) // Build the part tree. // This is a container part. - if (part.ContentType.Type.ToLower().Equals("multipart")) + if (part.ContentType.Type.ToLower().Trim().Equals("multipart")) { ParseSubParts(ref part, message); } // This is a nested message. - else if (part.ContentType.Type.ToLower().Equals("message")) + else if (part.ContentType.Type.ToLower().Trim().Equals("message")) { // TODO: Create an interpreter to this. } @@ -560,9 +574,9 @@ public static MimePart ParseMimePart(byte[] binaryData, Message message) } - private static byte[] GetBinaryPart(byte[] srcData, string asciiPart) + private static byte[] GetBinaryPart(byte[] srcData, string utf8Part) { - byte[] result = new byte[GetASCIIByteCountOfPart(asciiPart)]; + var result = new byte[GetUtf8ByteCountOfPart(utf8Part)]; Array.Copy(srcData, (srcData.Length - result.Length), result, 0, result.Length); return result; @@ -1037,7 +1051,7 @@ public static AddressCollection ParseAddresses(string input) /// public static Address ParseAddress(string input) { - input = input.TrimEnd(';'); + input = (input ?? "").Replace("\"", "").TrimEnd(';'); try { if (!input.Contains("<")) @@ -1045,7 +1059,7 @@ public static Address ParseAddress(string input) Address address = null; - Match displayNameMatch = Regex.Match(input, "(\"?(.+)(\"?(?=\\s?<)|(?=<)))"); + var displayNameMatch = Regex.Match(input, "(\"?(.+)(\"?(?=\\s?<)|(?=<)))"); if (displayNameMatch.Success) address = new Address(input.Replace(displayNameMatch.Value, string.Empty).Trim().Trim(new[] { '<', '>' }), displayNameMatch.Groups[1].Value); else @@ -1054,7 +1068,7 @@ public static Address ParseAddress(string input) CleanupAddress(address); return address; } - catch + catch (Exception) { return new Address { Email = input }; } diff --git a/Class Library/ActiveUp.Net.Common/SslHandShake.cs b/Class Library/ActiveUp.Net.Common/SslHandShake.cs index 16a04a2..ef96dcf 100644 --- a/Class Library/ActiveUp.Net.Common/SslHandShake.cs +++ b/Class Library/ActiveUp.Net.Common/SslHandShake.cs @@ -48,7 +48,7 @@ public SslHandShake(string hostName, System.Security.Authentication.SslProtocols { } - public SslHandShake(string hostName) : this(hostName, System.Security.Authentication.SslProtocols.Default, null, null, null, false) + public SslHandShake(string hostName) : this(hostName, System.Security.Authentication.SslProtocols.None, null, null, null, false) { } diff --git a/Class Library/ActiveUp.Net.Common/TraceInfo.cs b/Class Library/ActiveUp.Net.Common/TraceInfo.cs index a0fc37a..ede1c8a 100644 --- a/Class Library/ActiveUp.Net.Common/TraceInfo.cs +++ b/Class Library/ActiveUp.Net.Common/TraceInfo.cs @@ -95,22 +95,22 @@ private void Initialize(string from, DateTime date, string by, string via, strin public override string ToString() { string source = string.Empty; - if (!From.Equals(string.Empty)) + if (!string.IsNullOrEmpty(From)) source += " from " + From + "\r\n "; - if (!By.Equals(string.Empty)) + if (!string.IsNullOrEmpty(By)) source += " by " + By + "\r\n "; - if (!With.Equals(string.Empty)) + if (!string.IsNullOrEmpty(With)) source += " with " + With + "\r\n "; - if (!For.Equals(string.Empty)) + if (!string.IsNullOrEmpty(For)) source += " for " + For + "\r\n "; - if (!Via.Equals(string.Empty)) + if (!string.IsNullOrEmpty(Via)) source += " via " + Via + "\r\n "; - if (!Id.Equals(string.Empty)) + if (!string.IsNullOrEmpty(Id)) source += " id " + Id + "\r\n "; if (string.IsNullOrEmpty(source)) return ""; - return source.Remove(0,source.Length - 3) + ";" + Date.ToString("r"); + return source.Remove(0, source.Length - 3) + ";" + Date.ToString("r"); } } } diff --git a/Class Library/ActiveUp.Net.Imap4/Fetch.cs b/Class Library/ActiveUp.Net.Imap4/Fetch.cs index d987a6a..f29a32b 100644 --- a/Class Library/ActiveUp.Net.Imap4/Fetch.cs +++ b/Class Library/ActiveUp.Net.Imap4/Fetch.cs @@ -5,7 +5,7 @@ // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. -// +// // MailSystem.NET is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -13,7 +13,7 @@ // You should have received a copy of the GNU Lesser General Public License // along with SharpMap; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.IO; @@ -29,8 +29,6 @@ namespace ActiveUp.Net.Mail #endif public class Fetch { - private string _response; - private byte[] _binaryResponse; #region Methods @@ -56,7 +54,7 @@ private CommandOptions getFetchOptions() /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -64,9 +62,9 @@ private CommandOptions getFetchOptions() /// string body = inbox.Fetch.Body(1); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -74,9 +72,9 @@ private CommandOptions getFetchOptions() /// Dim body As String = inbox.Fetch.Body(1); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -106,7 +104,7 @@ public string EndBody(IAsyncResult result) { return _delegateBody.EndInvoke(result); } - + public string UidBody(int uid) { ParentMailbox.SourceClient.SelectMailbox(ParentMailbox.Name); @@ -137,7 +135,7 @@ public string EndUidBody(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -145,9 +143,9 @@ public string EndUidBody(IAsyncResult result) /// string body = inbox.Fetch.BodySection(1,3); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -155,9 +153,9 @@ public string EndUidBody(IAsyncResult result) /// Dim body As String = inbox.Fetch.Body(1,3); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -217,7 +215,7 @@ public string EndUidBodySection(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -225,9 +223,9 @@ public string EndUidBodySection(IAsyncResult result) /// string body = inbox.Fetch.BodyStructure(1); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -235,9 +233,9 @@ public string EndUidBodySection(IAsyncResult result) /// Dim body As String = inbox.Fetch.BodyStructure(1); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -297,7 +295,7 @@ public string EndUidBodyStructure(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -305,9 +303,9 @@ public string EndUidBodyStructure(IAsyncResult result) /// string internalDate = inbox.Fetch.InternalDate(1); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -315,9 +313,9 @@ public string EndUidBodyStructure(IAsyncResult result) /// Dim internalDate As String = inbox.Fetch.InternalDate(1); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -377,7 +375,7 @@ public string EndUidInternalDate(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -385,9 +383,9 @@ public string EndUidInternalDate(IAsyncResult result) /// FlagCollection flags = inbox.Fetch.Flags(1); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -395,9 +393,9 @@ public string EndUidInternalDate(IAsyncResult result) /// Dim flags As FlagCollection = inbox.Fetch.Flags(1); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -510,7 +508,7 @@ public byte[] EndUidHeader(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -518,9 +516,9 @@ public byte[] EndUidHeader(IAsyncResult result) /// Header Header = inbox.Fetch.Header(1); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -528,9 +526,9 @@ public byte[] EndUidHeader(IAsyncResult result) /// Dim Header As Header = inbox.Fetch.Header(1); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -696,7 +694,7 @@ public string EndUidHeaderString(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -707,9 +705,9 @@ public string EndUidHeaderString(IAsyncResult result) /// string messageSubject = lines["subject"]; /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -720,9 +718,9 @@ public string EndUidHeaderString(IAsyncResult result) /// Dim messageSubject As String = lines("subject") /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -891,7 +889,7 @@ public System.Collections.Specialized.NameValueCollection EndUidHeaderLinesNotPe /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -902,9 +900,9 @@ public System.Collections.Specialized.NameValueCollection EndUidHeaderLinesNotPe /// string messageSubject = lines["subject"]; /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -915,9 +913,9 @@ public System.Collections.Specialized.NameValueCollection EndUidHeaderLinesNotPe /// Dim messageSubject As String = lines("subject") /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -1087,9 +1085,9 @@ public byte[] Message(int messageOrdinal) { ParentMailbox.SourceClient.SelectMailbox(ParentMailbox.Name); ParentMailbox.SourceClient.OnMessageRetrieving(new MessageRetrievingEventArgs(messageOrdinal)); byte[] response = ParentMailbox.SourceClient.CommandBinary("fetch " + messageOrdinal.ToString() + " rfc822", getFetchOptions()); - _binaryResponse = response; - _response = Encoding.UTF8.GetString(response); - Logger.AddEntry(GetType(), _response); + BinaryResponse = response; + Response = Encoding.UTF8.GetString(response); + Logger.AddEntry(GetType(), Response); byte[] message = ExtractMessageFromReponse(response); @@ -1139,7 +1137,7 @@ public byte[] EndUidMessage(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -1147,9 +1145,9 @@ public byte[] EndUidMessage(IAsyncResult result) /// Message message = inbox.Fetch.Message(1); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -1157,9 +1155,9 @@ public byte[] EndUidMessage(IAsyncResult result) /// Dim message As Message = inbox.Fetch.Message(1); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -1259,12 +1257,12 @@ public MemoryStream EndUidMessageStream(IAsyncResult result) /// The ordinal position of the message to be fetched. /// The message's data as a string. /// - public string MessageString(int messageOrdinal) + public string MessageString(int messageOrdinal) { return Encoding.UTF8.GetString(Message(messageOrdinal)); } - private static byte[] ExtractMessageFromReponse(byte[] response) + private static byte[] ExtractMessageFromReponse(byte[] response) { byte[] message = null; string responseString = Encoding.ASCII.GetString(response); @@ -1286,7 +1284,7 @@ private static byte[] ExtractMessageFromReponse(byte[] response) continue; } } - + try { if (message == null || firstline == null) throw new Exception("failed to determine messagesize"); @@ -1300,14 +1298,14 @@ private static byte[] ExtractMessageFromReponse(byte[] response) int suffixLength = Encoding.ASCII.GetByteCount(responseString.Substring(responseString.LastIndexOf(")"))); message = new byte[response.Length - prefixLength - suffixLength]; Array.Copy(response, prefixLength, message, 0, message.Length); - } + } return message; } catch (Exception e) { throw new Exception("failed to extract message from response", e); } } - + private delegate string DelegateMessageString(int messageOrdinal); private DelegateMessageString _delegateMessageString; @@ -1359,12 +1357,12 @@ public byte[] MessagePeek(int messageOrdinal) ParentMailbox.SourceClient.OnMessageRetrieving(new MessageRetrievingEventArgs(messageOrdinal)); byte[] response; if (ParentMailbox.SourceClient.ServerCapabilities.IndexOf("IMAP4rev1") != -1) - response = ParentMailbox.SourceClient.CommandBinary("fetch " + messageOrdinal.ToString() + " body[mime]", getFetchOptions()); + response = ParentMailbox.SourceClient.CommandBinary("fetch " + messageOrdinal.ToString() + " body[mime]", getFetchOptions()); else response = ParentMailbox.SourceClient.CommandBinary("fetch " + messageOrdinal.ToString() + " rfc822.peek", getFetchOptions()); - _binaryResponse = response; - _response = Encoding.UTF8.GetString(response); - + BinaryResponse = response; + Response = Encoding.UTF8.GetString(response); + byte[] message = ExtractMessageFromReponse(response); ParentMailbox.SourceClient.OnMessageRetrieved(new MessageRetrievedEventArgs(message, messageOrdinal)); return message; @@ -1387,7 +1385,19 @@ public byte[] EndMessagePeek(IAsyncResult result) public byte[] UidMessagePeek(int uid) { - return Encoding.UTF8.GetBytes(UidMessageStringPeek(uid)); + ParentMailbox.SourceClient.SelectMailbox(ParentMailbox.Name); + ParentMailbox.SourceClient.OnMessageRetrieving(new MessageRetrievingEventArgs(uid)); + byte[] response; + if (ParentMailbox.SourceClient.ServerCapabilities.IndexOf("IMAP4rev1") != -1) + response = ParentMailbox.SourceClient.CommandBinary("uid fetch " + uid.ToString() + " BODY.PEEK[]", getFetchOptions()); + else + response = ParentMailbox.SourceClient.CommandBinary("uid fetch " + uid.ToString() + " rfc822.peek", getFetchOptions()); + BinaryResponse = response; + Response = Encoding.UTF8.GetString(response); + + byte[] message = ExtractMessageFromReponse(response); + ParentMailbox.SourceClient.OnMessageRetrieved(new MessageRetrievedEventArgs(message, uid)); + return message; } private delegate byte[] DelegateUidMessagePeek(int uid); @@ -1554,7 +1564,7 @@ public string EndUidMessageStringPeek(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -1562,9 +1572,9 @@ public string EndUidMessageStringPeek(IAsyncResult result) /// int size = inbox.Fetch.Size(1); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -1572,9 +1582,9 @@ public string EndUidMessageStringPeek(IAsyncResult result) /// Dim size As Integer = inbox.Fetch.Size(1); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -1634,7 +1644,7 @@ public int EndUidSize(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -1642,9 +1652,9 @@ public int EndUidSize(IAsyncResult result) /// string messageBody = inbox.Fetch.Text(1); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -1652,9 +1662,9 @@ public int EndUidSize(IAsyncResult result) /// Dim messageBody As Header = inbox.Fetch.Text(1); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -1766,7 +1776,7 @@ public string EndUidTextPeek(IAsyncResult result) /// /// /// C# - /// + /// /// Imap4Client imap = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -1774,9 +1784,9 @@ public string EndUidTextPeek(IAsyncResult result) /// int uid = inbox.Fetch.Uid(1); /// inbox.Close(); /// imap.Disconnect(); - /// + /// /// VB.NET - /// + /// /// Dim imap As New Imap4Client /// imap.Connect("mail.myhost.com") /// imap.Login("jdoe1234","tanstaaf") @@ -1784,9 +1794,9 @@ public string EndUidTextPeek(IAsyncResult result) /// Dim uid As Integer = inbox.Fetch.Uid(1); /// inbox.Close() /// imap.Disconnect() - /// + /// /// JScript.NET - /// + /// /// var imap:Imap4Client = new Imap4Client(); /// imap.Connect("mail.myhost.com"); /// imap.Login("jdoe1234","tanstaaf"); @@ -2159,22 +2169,18 @@ public string EndPartialTextStringPeek(IAsyncResult result) /// /// The complete mail server response /// - public string Response { - get { return _response; } - } + public string Response { get; private set; } /// /// The complete mail server response (binary) /// - public byte[] BinaryResponse { - get { return _binaryResponse; } - } + public byte[] BinaryResponse { get; private set; } /// /// The Fetch's parent mailbox. /// public Mailbox ParentMailbox { get; set; } - + #endregion } } \ No newline at end of file diff --git a/Class Library/ActiveUp.Net.Tests/ActiveUp.Net.Tests.csproj b/Class Library/ActiveUp.Net.Tests/ActiveUp.Net.Tests.csproj index 9ec1f65..44a5b97 100644 --- a/Class Library/ActiveUp.Net.Tests/ActiveUp.Net.Tests.csproj +++ b/Class Library/ActiveUp.Net.Tests/ActiveUp.Net.Tests.csproj @@ -82,6 +82,7 @@ + @@ -102,9 +103,21 @@ PreserveNewest + + Always + Always + + Always + + + Always + + + Always + Always @@ -126,6 +139,9 @@ Always + + Always + Always diff --git a/Class Library/ActiveUp.Net.Tests/Common/MimePartTests.cs b/Class Library/ActiveUp.Net.Tests/Common/MimePartTests.cs index 84185f0..21094b0 100644 --- a/Class Library/ActiveUp.Net.Tests/Common/MimePartTests.cs +++ b/Class Library/ActiveUp.Net.Tests/Common/MimePartTests.cs @@ -419,7 +419,7 @@ public void should_content_transfer_encode_text() public void should_append_html_parts_with_multipart_related_content_type() { var message = Parser.ParseMessageFromFile(_baseDir + "\\resource\\html_multipart_related_email_with_subparts.eml"); - message.BodyText.Text.ShouldEqual("Hi,\r\n\r\nI?m the first step of message to test.\r\n\r\nSender\r\nHelper\r\n[Descrição: Descrição: Descrição: Descrição: Imagem4]\r\nE-mail: sender@sender.com\r\nWeb: www.sender.com\r\n\r\nCurta nossa página no Facebook\r\n\r\n\r\n\r\n\r\nDe: Destinatary - Client\r\nEnviada em: quarta-feira, 23 de março de 2016 18:39\r\nPara: Odare; suport@enterprise.com; suporte\r\nCc: contasapagar; Customer2 - Client; Customer3 - Client; Customer4 - Client\r\nAssunto: Email multipart related multilevel\r\n\r\nHi there,\r\n\r\nThis is the multipart original message.\r\n\r\n[cid:image003.jpg@01D185BB.A9907410]\r\n\r\n\r\nFollow the image of problem:\r\n\r\n[cid:image004.jpg@01D185BB.A9907410]\r\n\r\nAtt,\r\n\r\n\r\n\r\n\r\n\r\n"); + message.BodyText.Text.ShouldEqual("Hi,\r\n\r\nI'm the first step of message to test.\r\n\r\nSender\r\nHelper\r\n[Descrição: Descrição: Descrição: Descrição: Imagem4]\r\nE-mail: sender@sender.com\r\nWeb: www.sender.com\r\n\r\nCurta nossa página no Facebook\r\n\r\n\r\n\r\n\r\nDe: Destinatary - Client\r\nEnviada em: quarta-feira, 23 de março de 2016 18:39\r\nPara: Odare; suport@enterprise.com; suporte\r\nCc: contasapagar; Customer2 - Client; Customer3 - Client; Customer4 - Client\r\nAssunto: Email multipart related multilevel\r\n\r\nHi there,\r\n\r\nThis is the multipart original message.\r\n\r\n[cid:image003.jpg@01D185BB.A9907410]\r\n\r\n\r\nFollow the image of problem:\r\n\r\n[cid:image004.jpg@01D185BB.A9907410]\r\n\r\nAtt,\r\n\r\n\r\n\r\n\r\n\r\n"); message.BodyHtml.Text.ShouldEqual("\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n

Hi,

\r\n

 

\r\n

This is the multipart original message.

\r\n

 

\r\n

Sender

\r\n\r\n\r\n\r\n"); } diff --git a/Class Library/ActiveUp.Net.Tests/Common/ParserTests.cs b/Class Library/ActiveUp.Net.Tests/Common/ParserTests.cs index a7afd25..bea6d91 100644 --- a/Class Library/ActiveUp.Net.Tests/Common/ParserTests.cs +++ b/Class Library/ActiveUp.Net.Tests/Common/ParserTests.cs @@ -107,6 +107,14 @@ public void should_parse_address_with_no_closing_quote_after_display_name() address.Name.ShouldEqual("Display Name only one quote"); } + [Test] + public void should_parse_address_with_invalid_empty_quote() + { + var address = Parser.ParseAddress("\"\" Invoice@dymak.nl\""); + address.Email.ShouldEqual("Invoice@dymak.nl"); + address.Name.ShouldEqual(""); + } + /// /// [discussion:641270] - Created discussion to validate if this test is rigth. /// @@ -130,13 +138,18 @@ public void should_append_html_parts_with_inline_disposition() } [Test] - public void should_decode_content_name() + public void should_decode_japanese_content() { var message = Parser.ParseMessage(File.ReadAllText(_baseDir + "\\resource\\japanese_email.eml")); - + var subject = "Fwd: 大阪瓦斯 (9532) : シェール生産動向、気温が当面の焦点"; + Assert.AreEqual(subject, message.Subject); + var textBody = "J.P. Morgan Markets Research Email Alerts\r\nhttps://jpmm.com/\r\n\r\nDear Anna-Maria Nilsson,\r\n\r\nJ.P. Morgan Research has published the following on J.P. MorganMarkets.\r\nPlease click on the indicated URL to access your document.\r\n\r\nHeadline: 大阪瓦斯 (9532) : シェール生産動向、気温が当面の焦点\r\n\r\nAuthor(s):\r\nYuji Nishiyama\r\nhttps://jpmm.com/research/analyst/V577405\r\n\r\n\r\nAbstract: 決算の印象は芳しくなかった:\r\n第2四半期決算を受けて、業績予想を見直した。目標株価を500円から490円に引き下げるが、投資判断「Overweight」を継続する。決算および決算説明会の印象が芳しくなかったことに加え、同業他社による不定期な値下げ実施、ガス制度改革等、当面は向かい風が強く、株価は動意薄とならざるを得ないと考える。ただ、中長期的には海外投資による利益成長と、それに伴う株主還元拡充が期待でき、魅力的な投資対象であるとの見解は維持する。\r\nシェールの生産不調:\r\n決算の印象を悪化させた第1の要因は、米国のピアソール・シェールにおける生産不調に起因する海外エネルギーの通期下方修正。埋蔵量は当初想定通りとのことであり、将来の可能性が減じたわけではないが、短期的には生産が軌道に乗る見通しがまだ立っていない模様であるため、懸念材料として意識されるだろう。\r\nのれん代過多の買収: 第2の要因はJacobi\r\nCarbonsののれん代で、決算説明会では2.5億ドルであることが明らかにされた。買収予定金額は3.9億ドルであり、PBRにして2.8倍となる。営業利益対比で見ると、買収金額はその13倍と、類似取引事例などから鑑みて必ずしも割高ではないが、のれん代の規模は当社が想定していたよりも大きく、市場の評価は得にくいだろう。\r\n今週に入り、気温は急速に低下:\r\n第3四半期決算に向けての焦点は、冬場の気温とピアソール・シェールの生産動向となろう。10月の平均気温は平年を1.8度上回り、11月上旬でも0.3度上回っている。ただ、今週に入って気温が急速に低下し、11月11日の平均気温は12.4度と平年を2度も下回っており、低気温が持続すればガス事業の上振れが期待できる。\r\n\r\nLink: https://jpmm.com/research/content/GPS-1258467-0\r\n\r\n\r\nDate: Wed Nov 13 01:15:14 EST 2013\r\n\r\n------------------------------------------------------------------------------------\r\n\r\nVisit J.P. Morgan Markets at https://jpmm.com/research/disclosures\r\n\r\nIf you wish to change your J.P. Morgan Email Alert preferences or\r\nunsubscribe, visit:\r\nhttps://jpmm.com/research/page/cfp_my_alerts\r\n------------------------------------------------------------------------------------\r\n\r\nCopyright @ 1999, 2013 JPMorgan Chase & Co. All Rights Reserved.\r\n\r\nThis email alert is sent only to authorized J.P. Morgan clients and is for\r\ninformational purposes only. This email alert may contain hyperlinks and/or\r\nattachments to J.P. Morgan research that you requested. Additional\r\ninformation available upon request.\r\n\r\nThis email alert may not be forwarded or distributed to any other person\r\nand may not be reproduced in any manner whatsoever. It is not intended as\r\nan offer or solicitation for the purchase or sale of any financial\r\ninstrument or as an official confirmation of any transaction. Access to the\r\nresearch described herein is made available only to authorized J.P. Morgan\r\nclients with a valid ID and password to the J.P Morgan Markets website. The\r\nresearch referred to in this email alert is made available globally by J.P.\r\nMorgan Securities LLC, J.P. Morgan Futures Inc., J.P. Morgan Securities\r\nplc, J.P. Morgan plc, J.P. Morgan Europe Limited or their affiliates as\r\ndesignated via the J.P. Morgan Markets website. All market prices, data and\r\nother information are not warranted as to completeness or accuracy and are\r\nsubject to change without notice. Any comments or statements made herein do\r\nnot necessarily reflect those of JPMorgan Chase & Co., its subsidiaries and\r\naffiliates.\r\n\r\nJ.P. Morgan's Full Disclaimer: https://jpmm.com/research/disclosures\r\n\n-- \n----------------------------------------------------------------------------------------------------\n*ABC arbitrage, partenaire officiel du skipper Jean-Pierre Dick // ABC \narbitrage, official partner of skipper Jean-Pierre Dick // www.jpdick.com \n*\nPlease consider your environmental responsibility before printing this email\n*********************************************************************************\nCe message peut contenir des informations confidentielles. Les idees et \nopinions presentees dans ce message sont celles de son auteur, et ne \nrepresentent pas necessairement celles du groupe ABC arbitrage.\nAu cas ou il ne vous serait pas destine,merci d'en aviser l'expediteur \nimmediatement et de le supprimer.\n\nThis message may contain confidential information. Any views or opinions \npresented are solely those of its author and do not necessarily represent \nthose of ABC arbitrage. \nIf you are not the intended recipient, please notify the sender immediately \nand delete it.\n*********************************************************************************\n\n"; + Assert.AreEqual(textBody, message.BodyText.Text); + var htmlBody = "



\r\nJ.P. Morgan Markets Research Email Alerts
\r\nhttps://jpmm.com/
\r\n
\r\nDear Anna-Maria Nilsson,
\r\n
\r\nJ.P. Morgan Research has published the following on J.P. MorganMarkets.   Please click on the indicated URL to access your document.
\r\n
\r\nHeadline:  大阪瓦斯 (9532)  : シェール生産動向、気温が当面の焦点
\r\n
\r\nAuthor(s):
\r\nYuji Nishiyama
\r\nhttps://jpmm.com/research/analyst/V577405
\r\n
\r\n
\r\nAbstract:  決算の印象は芳しくなかった: 第2四半期決算を受けて、業績予想を見直した。目標株価を500円から490円に引き下げるが、投資判断「Overweight」を継続する。決算および決算説明会の印象が芳しくなかったことに加え、同業他社による不定期な値下げ実施、ガス制度改革等、当面は向かい風が強く、株価は動意薄とならざるを得ないと考える。ただ、中長期的には海外投資による利益成長と、それに伴う株主還元拡充が期待でき、魅力的な投資対象であるとの見解は維持する。 シェールの生産不調: 決算の印象を悪化させた第1の要因は、米国のピアソール・シェールにおける生産不調に起因する海外エネルギーの通期下方修正。埋蔵量は当初想定通りとのことであり、将来の可能性が減じたわけではないが、短期的には生産が軌道に乗る見通しがまだ立っていない模様であるため、懸念材料として意識されるだろう。 のれん代過多の買収: 第2の要因はJacobi Carbonsののれん代で、決算説明会では2.5億ドルであることが明らかにされた。買収予定金額は3.9億ドルであり、PBRにして2.8倍となる。営業利益対比で見ると、買収金額はその13倍と、類似取引事例などから鑑みて必ずしも割高ではないが、のれん代の規模は当社が想定していたよりも大きく、市場の評価は得にくいだろう。 今週に入り、気温は急速に低下: 第3四半期決算に向けての焦点は、冬場の気温とピアソール・シェールの生産動向となろう。10月の平均気温は平年を1.8度上回り、11月上旬でも0.3度上回っている。ただ、今週に入って気温が急速に低下し、11月11日の平均気温は12.4度と平年を2度も下回っており、低気温が持続すればガス事業の上振れが期待できる。
\r\n\r\n\r\n
\r\nLink:  https://jpmm.com/research/content/GPS-1258467-0
\r\n
\r\n
\r\nDate:  Wed Nov 13 01:15:14 EST 2013
\r\n
\r\n------------------------------------------------------------------------------------
\r\n
\r\nVisit J.P. Morgan Markets at https://jpmm.com/research/disclosures
\r\n
\r\nIf you wish to change your J.P. Morgan Email Alert preferences or unsubscribe, visit:
\r\nhttps://jpmm.com/research/page/cfp_my_alerts
\r\n------------------------------------------------------------------------------------
\r\n
\r\nCopyright @ 1999, 2013 JPMorgan Chase & Co. All Rights Reserved.
\r\n
\r\nThis email alert is sent only to authorized J.P. Morgan clients and is for informational purposes only. This email alert may contain hyperlinks and/or attachments to J.P. Morgan research that you requested. Additional information available upon request.
\r\n\r\n\r\n
\r\nThis email alert may not be forwarded or distributed to any other person and may not be reproduced in any manner whatsoever. It is not intended as an offer or solicitation for the purchase or sale of any financial instrument or as an official confirmation of any transaction. Access to the research described herein is made available only to authorized J.P. Morgan clients with a valid ID and password to the J.P Morgan Markets website. The research referred to in this email alert is made available globally by J.P. Morgan Securities LLC, J.P. Morgan Futures Inc., J.P. Morgan Securities plc, J.P. Morgan plc, J.P. Morgan Europe Limited or their affiliates as designated via the J.P. Morgan Markets website. All market prices, data and other information are not warranted as to completeness or accuracy and are subject to change without notice. Any comments or statements made herein do not necessarily reflect those of JPMorgan Chase & Co., its subsidiaries and affiliates.
\r\n\r\n\r\n
\r\nJ.P. Morgan's Full Disclaimer:  https://jpmm.com/research/disclosures
\r\n

\r\n\n
\n
----------------------------------------------------------------------------------------------------
ABC arbitrage, partenaire officiel du skipper Jean-Pierre Dick // ABC arbitrage, official partner of skipper Jean-Pierre Dick // www.jpdick.com
Please consider your environmental responsibility before printing this email
*********************************************************************************
Ce message peut contenir des informations confidentielles. Les idees et opinions presentees dans ce message sont celles de son auteur, et ne representent pas necessairement celles du groupe ABC arbitrage.
Au cas ou il ne vous serait pas destine,merci d'en aviser l'expediteur immediatement et de le supprimer.

This message may contain confidential information. Any views or opinions presented are solely those of its author and do not necessarily represent those of ABC arbitrage. 
If you are not the intended recipient, please notify the sender immediately and delete it.
*********************************************************************************

"; + Assert.AreEqual(htmlBody, message.BodyHtml.Text); message.Attachments[0].ContentName.ShouldEqual("大阪瓦斯9532.pdf"); } - + /// /// https://tools.ietf.org/html/rfc2387 /// @@ -144,7 +157,7 @@ public void should_decode_content_name() public void should_recognize_line_break_of_notepad_text_in_body() { var message = Parser.ParseMessageFromFile(_baseDir + "\\resource\\quoted-printable-notepad-linebreak.eml"); - message.BodyText.Text.ShouldEqual("Alatur,\r\rFoi criada uma nova solicitação para TESTE SOLICITANTE.\r\rCliente: TESTE HOTEL\rEmpresa: TESTE\rC. Custo: TESTE TESTE\r\r\r>>> PASSAGEM AÉREA\rDescrição.: (GRU) Cumbica / (LAS) Las Vegas 04/Jan Manhã (06:00 às 12:00) (Econômica)\rHorário...: considerando saída\rPagamento.: FATURADO\r\rDescrição.: (LAS) Las Vegas / (GRU) Cumbica 07/Jan Manhã (06:00 às 12:00) (Econômica)\rHorário...: considerando saída\rPagamento.: FATURADO\r\r\r>>> SOLICITANTE\rteste solicitante (fulfillment@alatur.com)\r\r\rDestinatários que estão recebendo esse email: \rtms@argoit.com.br (tms@argoit.com.br)\rteste solicitante (fulfillment@alatur.com)\rtesteodare@encontact.com.br (testeodare@encontact.com.br)\rodare@encontact.com.br (odare@encontact.com.br)\r\rPara acessá-la clique em: \r \r\rEMAIL AUTOMÁTICO, NÃO RESPONDA ESSA MENSAGEM\r\n"); + message.BodyText.Text.ShouldEqual("Sender,\r\rFoi criada uma nova solicitação para TESTE SOLICITANTE.\r\rCliente: TESTE HOTEL\rEmpresa: TESTE\rC. Custo: TESTE TESTE\r\r\r>>> PASSAGEM AÉREA\rDescrição.: (GRU) Cumbica / (LAS) Las Vegas 04/Jan Manhã (06:00 às 12:00) (Econômica)\rHorário...: considerando saída\rPagamento.: FATURADO\r\rDescrição.: (LAS) Las Vegas / (GRU) Cumbica 07/Jan Manhã (06:00 às 12:00) (Econômica)\rHorário...: considerando saída\rPagamento.: FATURADO\r\r\r>>> SOLICITANTE\rteste solicitante (teste-conta@sender.com)\r\r\rDestinatários que estão recebendo esse email: \rtms@server.com (tms@argoit.com.br)\rteste solicitante (teste-conta@sender.com)\rtestereceiver@enterprise.com (testreceiver@enterprise.com)\rtestreceiver@enterprise.co (testreceiver@enterprise.com)\r\rPara acessá-la clique em: \r \r\rEMAIL AUTOMÁTICO, NÃO RESPONDA ESSA MENSAGEM\r\n"); message.BodyHtml.Text.ShouldEqual(""); } @@ -208,5 +221,69 @@ public void MustParseEmlWithoutContentTypeSubtypeWithLostTextBody() Assert.AreEqual("text", message.ContentType.Type); Assert.AreEqual("text", message.ContentType.MimeType); } + + [Test(Description = "")] + public void MustParseEmlWithContentTransferEncode8Bit() + { + var message = Parser.ParseMessageFromFile(_baseDir + "\\resource\\content-transfer-encode-8bit.eml"); + Assert.AreEqual("58caaa74.6625ed0a.22a2d.5376@mx.google.com", message.MessageId); + Assert.AreEqual("Special char test çãõáéíóú", message.Subject); + Assert.IsFalse(string.IsNullOrWhiteSpace(message.BodyText.Text)); + Assert.AreEqual("Body special char test çãõáéíóú", message.BodyText.Text); + Assert.IsTrue(string.IsNullOrWhiteSpace(message.BodyHtml.Text)); + } + + [Test(Description = "")] + public void MustParseEmlWithContentTransferEncode8BitUtf8FlowedHistory() + { + var message = Parser.ParseMessageFromFile(_baseDir + "\\resource\\content-transfer-encode-8bit-utf8-flowed.eml"); + Assert.AreEqual("bd502b4d-c631-9ff4-791f-fc01c9efc0e5@EmpresaX.com.br", message.MessageId); + Assert.AreEqual("Re: BLA BLÁ BLA XYZ/ XYZ / TROCA DE PACOTES origem ABC Destino XYZ x XYZ Nfs 666666 / 777777 Fornecedor Xamego INDUSTRIA", message.Subject); + Assert.IsFalse(string.IsNullOrWhiteSpace(message.BodyText.Text)); + var result = message.BodyText.Text; + var expected = "Boa tarde,\r\n\r\n*Fulano*, conforme o conversado em nosso teste, os dados do erro ja \r\nforam coletados, estamos trabalhando com a máxima urgência afim de \r\nefetuarmos a identificação.\r\n\r\n_Em contato com o cliente estou tentando reproduzir o problema\r\nnesta mensagem._\r\n\r\n_*Ciclano*( Empresa B ), por gentileza, conforme ja conversado, peço, \r\npriorizar acompanhar a estrutura errada deste e-mail._\r\n\r\n\r\nCerta da atenção, agradeço\r\n\r\n\r\n*Reinaldo Coelho *\r\nNosso Grupo\r\n\r\n*\r\nEm 12/04/2017 09:10, Fulano escreveu:\r\n>\r\n> Ok, Agradeço a atenção Ciclano.\r\n>\r\n> *Reinaldo Coelho *\r\n> *Meu cargo atual*\r\n> EmpresaX\r\n> *Fone:(11) 2222-4444 / Ramal: 123 **\r\n> *Email:mary.anne@EmpresaX.com.br \r\n> *\r\n> *Acesse nosso site:www.EmpresaX.com.br *\r\n> Nosso Grupo\r\n>\r\n> *\r\n> Em 12/04/2017 09:01, Florencia Ramos Conceição escreveu:\r\n>>\r\n>>\r\n>>\r\n>> Sim volumes pertencido a XYZ já desembarcarão e segue hoje para \r\n>> araguaina-to\r\n>>\r\n>> Duvidas a disposição.\r\n>>\r\n>>\r\n>> -- \r\n>> *Florencia Ramos Conceição*\r\n>> * Pendencia Fiscal*\r\n>>\r\n>> *Fone:(12)1111-6333*\r\n>> *Email:xyz.pendencias1@EmpresaX.com.br*\r\n>> *Acesse nosso site:www.EmpresaX.com.br *\r\n>>\r\n>> *----- Original Message ----*\r\n>> *From:* mary.anne@EmpresaX.com.br\r\n>> *To:* \"Florencia Ramos Conceição\" (xyz.pendencias1@EmpresaX.com.br)\r\n>> *Cc:* \"Carlão Steave\" (vendasnonorte@prego.com.br)\r\n>> *Date:* Tue, 11 Apr 2017 15:11:37 -0300\r\n>> *Subject:* Re: BLA BLÁ BLA XYZ/ XYZ / TROCA DE PACOTES origem ABC Destino \r\n>>\r\n>> Boa tarde,\r\n>>\r\n>> tentei contato telefônico, porem não foi possível; o cliente que\r\n>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n>> yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy\r\n>> informar se o volume do mesmo ja consta em XYZ???\r\n>>\r\n>> Fico no aguardo para informarmos ao cliente.\r\n>>\r\n>> Agradeço\r\n>>\r\n>> att,\r\n>>\r\n>> *Reinaldo Coelho *\r\n>> *Meu cargo atual*\r\n>>\r\n>> *Fone:(11) 2222-4444 / Ramal: 123 **\r\n>> *Email:mary.anne@EmpresaX.com.br\r\n>> *\r\n>> *Acesse nosso site:www.EmpresaX.com.br\r\n>> *\r\n>>\r\n>>\r\n>> *\r\n>> Em 05/04/2017 17:03, Florencia Ramos Conceição escreveu:\r\n>>\r\n>>\r\n>> Esta seguindo os dois\r\n>>\r\n>>\r\n>> -- \r\n>> *Florencia Ramos Conceição*\r\n>> * Pendencia Fiscal*\r\n>>\r\n>> *Fone:(12)1111-6333*\r\n>> *Email:xyz.pendencias1@EmpresaX.com.br*\r\n>> *Acesse nosso site:www.EmpresaX.com.br\r\n>> *\r\n>>\r\n>> *----- Original Message ----*\r\n>> *From:* XYZ.pendencia04@EmpresaX.com.br\r\n>> *To:* \"Florencia Ramos Conceição\"\r\n>> (xyz.pendencias1@EmpresaX.com.br), \"Fulano\"\r\n>> (mary.anne@EmpresaX.com.br)\r\n>> *Date:* Wed, 5 Apr 2017 16:58:34 -0300\r\n>> *Subject:* Re: BLA BLÁ BLA XYZ/ XYZ / TROCA DE PACOTES origem ABC Destino \r\n>>\r\n>> Ok, lembrando que trata-se de dois volume de XYZ.\r\n>>\r\n>> Obrigada.\r\n>>\r\n>>\r\n>>\r\n>>\r\n>>\r\n>> Em 5/4/2017 16:53, Florencia Ramos Conceição escreveu:\r\n>>\r\n>> Volume pertencido a filial XYZ esta seguindo\r\n>> atraves de RRI-0031800000\r\n>>\r\n>>\r\n>> -- \r\n>> *Florencia Ramos Conceição*\r\n>> * Pendencia Fiscal*\r\n>>\r\n>> *Fone:(12)1111-6333*\r\n>> *Email:xyz.pendencias1@EmpresaX.com.br*\r\n>> *Acesse nosso site:www.EmpresaX.com.br\r\n>> *\r\n>>\r\n>> *----- Original Message ----*\r\n>> *From:* XYZ.pendencia04@EmpresaX.com.br\r\n>> *To:* \"Fulano\" (mary.anne@EmpresaX.com.br),\r\n>> \"Florencia Ramos Conceição\"\r\n>> (xyz.pendencias1@EmpresaX.com.br)\r\n>> *Date:* Wed, 5 Apr 2017 09:15:54 -0300\r\n>> *Subject:* BLA BLÁ BLA XYZ/ XYZ / TROCA DE PACOTES origem ABC Destino \r\n>>\r\n>> Bom dia !\r\n>>\r\n>> Fulano,\r\n>>\r\n>>\r\n>> Essa destroca esta difícil de ser resolvida, pois\r\n>> os volumes que se encontravam em XYZ , foi\r\n>> enviado , e até o momento não foi nos enviado os\r\n>> nossos corretos . O cliente XYZ nos cobra\r\n>> posicionamento , e se que tenho retorno da filial\r\n>> XYZ.\r\n>>\r\n>> Favor resolver esse caso , o quanto antes.\r\n>>\r\n>>\r\n>>\r\n>> Em 5/4/2017 08:48, Fulano escreveu:\r\n>>\r\n>> Bom dial,\r\n>>\r\n>> Pessoal informaçoes referente a\r\n>> destroca??...pXYZiso de um retorno*URGENTE,\r\n>> *pois o fornecedor( nossoMONITORADO) tem nos\r\n>> cobra regularmente este posicionamento.\r\n>>\r\n>> Fico no aguardo, para que possamos\r\n>> comunica-lo o mais breve possival\r\n>>\r\n>> att,\r\n>>\r\n>> *Reinaldo Coelho *\r\n>> *Meu cargo atual*\r\n>>\r\n>> *Fone:(11) 2222-4444 / Ramal: 123 **\r\n>> *Email:mary.anne@EmpresaX.com.br*\r\n>> *Acesse nosso site:www.EmpresaX.com.br*\r\n>>\r\n>>\r\n>> *\r\n>> Em 03/04/2017 09:48, Fulano escreveu:\r\n>>\r\n>> Bom dia,\r\n>>\r\n>> Ciclano assim que possível posicionar,\r\n>> peço também que verifique a XYZusa do\r\n>> cliente sobre 3 volumes, pois o erro era\r\n>> apenas em 2 volumes, sendo estes para a\r\n>> filial de XYZ...\r\n>>\r\n>> *Reinaldo Coelho *\r\n>> *Meu cargo atual*\r\n>>\r\n>> *Fone:(11) 2222-4444 / Ramal: 123 **\r\n>> *Email:mary.anne@EmpresaX.com.br*\r\n>> *Acesse nosso site:www.EmpresaX.com.br*\r\n>>\r\n>>\r\n>> *\r\n>> Em 03/04/2017 09:44, Gabriela Xavier escreveu:\r\n>>\r\n>> Bom dia !\r\n>>\r\n>> Temos algum posicionamento ?\r\n>>\r\n>> Nosso cliente nos cobra RETORNO COM\r\n>> URGÊNCIA...\r\n>>\r\n>>\r\n>> Em 31/3/2017 09:35, Fulano escreveu:\r\n>>\r\n>> Bom dia,\r\n>>\r\n>> Ok, agradeço a atenção.\r\n>>\r\n>> *Reinaldo Coelho *\r\n>> *Meu cargo atual*\r\n>>\r\n>> *Fone:(11) 2222-4444 / Ramal: 123 **\r\n>> *Email:mary.anne@EmpresaX.com.br*\r\n>>\r\n>> *Acesse nosso\r\n>> site:www.EmpresaX.com.br*\r\n>>\r\n>>\r\n>> *\r\n>> Em 31/03/2017 09:25, Ciclano\r\n>> Ramos Conceição escreveu:\r\n>>\r\n>> Valéria Bom Dia\r\n>>\r\n>> Trata-se de rota do interior,\r\n>> no qual já foi XYZusado os 03\r\n>> volumes pelo cliente, e\r\n>> parceiro já esta retornando\r\n>> com mercadoria para\r\n>> transportadora para estarmos\r\n>> verificando, assim que tiver\r\n>> ok, informo ID de envio para\r\n>> acompanhamento,\r\n>>\r\n>> Duvidas a disposição.\r\n>>\r\n>>\r\n>> -- \r\n>> *Florencia Ramos Conceição*\r\n>> * Pendencia Fiscal*\r\n>>\r\n>> *Fone:(12)1111-6333*\r\n>> *Email:xyz.pendencias1@EmpresaX.com.br*\r\n>>\r\n>> *Acesse nosso\r\n>> site:www.EmpresaX.com.br*\r\n>> & amp; lt; /p>\r\n>>\r\n>> *----- Original Message ----*\r\n>> *From:*\r\n>> XYZ.pendencia04@EmpresaX.com.br\r\n>> *To:* \"Fulano\"\r\n>> (mary.anne@EmpresaX.com.br),\r\n>> \"Roque Neto\"\r\n>> (xyz.pendencias1@EmpresaX.com.br)\r\n>> *Date:* Fri, 31 Mar 2017\r\n>> 08:56:52 -0300\r\n>> *Subject:* BLA BLÁ BLA XYZ/ \r\n>>\t\t\t\t\t\t\t\t\t\t\tXYZ / TROCA DE PACOTES origem \r\n>>\t\t\t\t\t\t\t\t\t\t\tABC Destino \r\n>>\r\n>> Bom dia !\r\n>>\r\n>> Ciclano,\r\n>>\r\n>>\r\n>> Favor nos posicionar\r\n>> referente ao volume de\r\n>> XYZ , pois o mesmo nos\r\n>> cobra retorno COM URGÊNCIA.\r\n>>\r\n>>\r\n>>\r\n>> Em 30/3/2017 08:24, Fulano\r\n>> escreveu:\r\n>>\r\n>> Bom dia,\r\n>>\r\n>> Gabriela, agradeço o\r\n>> retorno.\r\n>>\r\n>> Ciclano, assim que\r\n>> possível nos\r\n>> posicionar frente ao\r\n>> envio do volume de XYZ.\r\n>>\r\n>> Obrigada.\r\n>>\r\n>> att,\r\n>>\r\n>> *Reinaldo Coelho *\r\n>> *Meu cargo atual*\r\n>>\r\n>> *Fone:(18) 2103-4777\r\n>> / Ramal: 725 **\r\n>> *Email:mary.anne@EmpresaX.com.br*\r\n>>\r\n>> *Acesse nosso\r\n>> site:www.EmpresaX.com.br*\r\n>>\r\n>>\r\n>> *\r\n>> Em 29/03/2017 10:35,\r\n>> Gabriela Xavier escreveu:\r\n>>\r\n>> Bom dia !\r\n>>\r\n>> Troca confirmada\r\n>> , os volumes de\r\n>> XYZ serão\r\n>> enviados hoje\r\n>> através dos RRIs\r\n>> 35468888 /\r\n>> 31755555 , devido\r\n>> a fiscalização.\r\n>>\r\n>> Gentileza\r\n>> acompanhar\r\n>> desembarque dos\r\n>> mesmos, e nos\r\n>> enviar os nossos\r\n>> com urgência...\r\n>>\r\n>>\r\n>>\r\n>>\r\n>> Bueno ,\r\n>>\r\n>> Favor associar a\r\n>> devida viagem em\r\n>> sistema do SSAAS\r\n>> abaixo , hoje.\r\n>>\r\n>>\r\n>>\r\n>>\r\n>>\r\n>>\r\n>>\r\n>>\r\n>>\r\n>> -- \r\n>>\r\n>> Em 29/3/2017\r\n>> 08:21, Fulano\r\n>> escreveu:\r\n>>\r\n>> Bom dia,\r\n>>\r\n>> Ok, por\r\n>> gentileza,\r\n>> assim que\r\n>> tiver\r\n>> informaçoes\r\n>> referente a\r\n>> este volume\r\n>> comunique por\r\n>> favor, para\r\n>> que a\r\n>> destroca seja\r\n>> efetuada o\r\n>> mais breve\r\n>> possivel.\r\n>>\r\n>> *Reinaldo Coelho *\r\n>> *Auxiliar\r\n>> Manutenção*\r\n>>\r\n>> *Fone:(18)\r\n>> 2103-4777 /\r\n>> Ramal: 725 **\r\n>> *Email:mary.anne@EmpresaX.com.br*\r\n>>\r\n>> *Acesse nosso\r\n>> site:www.EmpresaX.com.br*\r\n>>\r\n>>\r\n>> *\r\n>> Em 28/03/2017\r\n>> 17:50,\r\n>> Ciclano Ramos\r\n>> Conceição\r\n>> escreveu:\r\n>>\r\n>> ok\r\n>>\r\n>> já\r\n>> estamos\r\n>> verificando.\r\n>>\r\n>>\r\n>> -- \r\n>> *Ciclano\r\n>> Ramos\r\n>> Conceição*\r\n>> * Pendencia\r\n>> Fiscal*\r\n>>\r\n>> *Fone:(12)1111-6333*\r\n>>\r\n>> *Email:xyz.pendencias1@EmpresaX.com.br*\r\n>>\r\n>> *Acesse\r\n>> nosso\r\n>> site:www.EmpresaX.com.br*\r\n>> & amp;\r\n>> amp; lt; /p>\r\n>>\r\n>> *-----\r\n>> Original\r\n>> Message ----*\r\n>> *From:*\r\n>> mary.anne@EmpresaX.com.br\r\n>> *To:*\r\n>> \"Roque\r\n>> Neto\"\r\n>> (xyz.pendencias1@EmpresaX.com.br),\r\n>> \"Gabriela\r\n>> Xavier\"\r\n>> (XYZ.pendencia04@EmpresaX.com.br)\r\n>> *Cc:*\r\n>> \"Logística\r\n>> | Grupo\r\n>> Xamego\"\r\n>> (logistica@Xamego.com.br)\r\n>> *Date:*\r\n>> Tue, 28\r\n>> Mar 2017\r\n>> 17:36:24\r\n>> -0300\r\n>> *Subject:*\r\n>>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBLA BLÁ BLA XYZ/ XYZ / \r\n>>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTROCA DE PACOTES origem ABC Destino \r\n>>\r\n>> Boa\r\n>> tarde\r\n>> colegas,\r\n>>\r\n>> Os\r\n>> conhecimentos\r\n>> citados\r\n>> constam\r\n>> em\r\n>> entrega,\r\n>> porem\r\n>> houve\r\n>> troca\r\n>> de\r\n>> etiquetagem\r\n>> em\r\n>> XYZ,\r\n>> desta\r\n>> forma,\r\n>> peço\r\n>> a\r\n>> atenção\r\n>> para\r\n>> que\r\n>> possamos\r\n>> destrocar\r\n>> o\r\n>> mais\r\n>> breve\r\n>> possível\r\n>>\r\n>> XYZ\r\n>> 322433,\r\n>> CLIENTE\r\n>> ME DE\r\n>> S\r\n>> CASTRO\r\n>> (XYZ), \r\n>> trocado\r\n>> com o\r\n>> AWB\r\n>> 383555,\r\n>> CLIENTE\r\n>> XE\r\n>> MENTES(XYZ)\r\n>>\r\n>> (O\r\n>> cliente\r\n>> XE\r\n>> MENTES,\r\n>> conforme\r\n>> informaçoes,\r\n>> devolveu\r\n>> a\r\n>> mercadoria\r\n>> no\r\n>> ato\r\n>> da\r\n>> entrega)\r\n>>\r\n>> *Gabriela*\r\n>> por\r\n>> gentileza,\r\n>> verificar\r\n>> informação\r\n>> de\r\n>> devolução\r\n>> para\r\n>> que\r\n>> se\r\n>> possa\r\n>> enviar\r\n>> o\r\n>> volume\r\n>> para\r\n>> XYZ,\r\n>> por\r\n>> gentileza.\r\n>>\r\n>> *Anislei,*\r\n>> não\r\n>> temos\r\n>> informaçoes\r\n>> de\r\n>> que o\r\n>> cliente\r\n>> de\r\n>> XYZ,\r\n>> ja\r\n>> verificou\r\n>> o\r\n>> erro,\r\n>> desta\r\n>> forma,\r\n>> peço,\r\n>> entrar\r\n>> em\r\n>> contato\r\n>> com a\r\n>> tripulação\r\n>> para\r\n>> que a\r\n>> entrega\r\n>> não\r\n>> seja\r\n>> finalizada,\r\n>> e\r\n>> encaminhar\r\n>> o\r\n>> volume\r\n>> para XYZ\r\n>>\r\n>> Fico\r\n>> no\r\n>> aguardo,\r\n>> pois\r\n>> trata-se\r\n>> de um\r\n>> cliente\r\n>> monitorado\r\n>>\r\n>> *Valéria\r\n>> Coelho *\r\n>> *Auxiliar\r\n>> Manutenção*\r\n>>\r\n>>\r\n>> *Fone:(11)\r\n>> 2100-4777\r\n>> /\r\n>\r\n\r\n"; + Assert.AreEqual(expected, result); + Assert.IsTrue(string.IsNullOrWhiteSpace(message.BodyHtml.Text)); + } + + [Test(Description = "")] + public void MustParseEmlContainingOnlyHeaders() + { + var message = Parser.ParseMessageFromFile(_baseDir + "\\resource\\only_header.eml"); + Assert.AreEqual("sender@host.com.br", message.From.Email); + Assert.AreEqual("59a459219e757_52803fc2847231301918b@a4-winter6.mail", message.MessageId); + Assert.AreEqual("I'm put all my text message on subject, then no has body in this e-mail. second line exists too.", message.Subject); + Assert.IsTrue(string.IsNullOrWhiteSpace(message.BodyText.Text)); + Assert.IsTrue(string.IsNullOrWhiteSpace(message.BodyHtml.Text)); + Assert.AreEqual(0, message.Attachments.Count); + } + + [Test(Description = "")] + public void MustParseEmlContainingOnlyHeaders2() + { + var message = Parser.ParseMessageFromFile(_baseDir + "\\resource\\only_header_2.eml"); + Assert.AreEqual("parceiro@abidos.com.br", message.From.Email); + Assert.AreEqual("d38c1c1f-abdc-483e-b8b5-cb95c65c2eeb@CY1NAM02FT029.eop-nam02.prod.protection.outlook.com", message.MessageId); + Assert.AreEqual("Conclua sua pos em 6 meses!!!", message.Subject); + Assert.IsTrue(string.IsNullOrWhiteSpace(message.BodyText.Text)); + Assert.IsTrue(string.IsNullOrWhiteSpace(message.BodyHtml.Text)); + Assert.AreEqual(0, message.Attachments.Count); + Assert.AreEqual(0, message.LeafMimeParts.Count); + } + + [Test(Description = "")] + public void MustParse8BitEmlWithSpecialCharInHtmlBody() + { + var message = Parser.ParseMessageFromFile(_baseDir + "\\resource\\content-transfer-encode-8bit-html-special-char.eml"); + Assert.AreEqual("fromemail@domain.com", message.From.Email); + Assert.AreEqual("3a8c760555b716f3834fef3a2b05f160@deskserver.ms", message.MessageId); + Assert.AreEqual("CLIENT - BRASIL Status: OPEN / RESOLVED #0917-000622", message.Subject); + Assert.IsFalse(string.IsNullOrWhiteSpace(message.BodyText.Text)); + Assert.AreEqual("Para visualizar a mensagem, por favor, use um cliente de e-mail compatÃ\u0083­vel/configurado para ver mensagens HTML!\r\n\r\n", message.BodyText.Text); + Assert.IsFalse(string.IsNullOrWhiteSpace(message.BodyHtml.Text)); + Assert.AreEqual("\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Qualquer dúvida estou a disposição.
\r\n
\r\n Atenciosamente,
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Ronald Santander
\r\n _________________________
\r\n
\r\n CLIENT
\r\n Consultor de Viagens
\r\n Tel.: + (55 11) 2222-4444
\r\n Tel.: + (55 11) 3333-6666
\r\n
\r\n
\r\n
\r\n Outros telefones
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ATENÃ\u0087Ã\u0083O!
\r\n
\r\n
\r\n
\r\n Prezado cliente, Seguindo a nova resolução do Regulador XXXXX, homologada em Abril/2016, e que impõe a emissão de certificado de seguro viagem individuais, tanto para viagem doméstica quanto internacional, as bandeiras American Express, Mastercard e Visa estão migrando o processo de emissão do certificado do seguro viagem, benefício incluso em suas soluções corporativas de pagamentos se utilizado pela sua empresa.
\r\n
\r\n
\r\n Todos os novos procedimentos de emissão do certificado do seguro viagem foram comunicados e disponibilizados aos gestores de viagens da sua empresa. Caso não tenha conhecimento do novo procedimento, se faz necessário verificar com o gestor responsável de sua empresa, pois a emissão do certificado é de total responsabilidade do viajante e requer acesso a ferramenta de emissão a cada viagem, por meio de login, senha e dados pessoais.
\r\n
\r\n
\r\n
\r\n INFORMAÃ\u0087Ã\u0095ES IMPORTANTES
\r\n
\r\n
\r\n
\r\n A garantia da reserva, do assento e da tarifa são a emissão do bilhete;
\r\n Tarifas sujeitas a alteração sem prévio aviso.
\r\n Atenção ao prazo de emissão das reservas;
\r\n Para alterações, cancelamentos ou reembolsos há incidência de multas e/ou diferenças tarifárias conforme regra do bilhete;
\r\n Multa por Churning: Segundo a política de reservas, poderá haver cobrança de multa em caso de solicitação/realização de sucessivas operações para o mesmo passageiro/ cia aérea/trecho. Esta cobrança, multa por Churning - Excessive or constant book/cancel activity , ocorre quando a cia aérea detecta o mesmo trecho aéreo ou parte dele solicitado a partir da segunda vez em datas idênticas ou próximas (até 5 dias antes ou depois para ida e/ou volta). As multas recebidas serão repassadas à empresa.
\r\n
\r\n
\r\n VIAGENS INTERNACIONAIS PARA BRASILEIROS
\r\n
\r\n
\r\n
\r\n Chegar no aeroporto com 3 horas de antecedência para o embarque;
\r\n Apresentar passaporte com validade mínima de 6 meses;
\r\n Para países que necessitam de visto, o mesmo deve estar válido no momento do embarque;
\r\n Para países que exigem vacina contra febre amarela, apresentar comprovante internacional com período de incubação de 10 dias;
\r\n Para maiores informações sobre vacinas necessárias ou indicadas para seu destino visite o site: http://www.anvisa.gov.br/viajante/ ;
\r\n Para viagens internacionais é necessário informar o Nome completo do passageiro (idêntico ao Passaporte), Data de nascimento, Número do passaporte, País de emissão do passaporte, Validade, Nacionalidade, País de residência, País de destino, Endereço no destino, Cidade, Estado, Cep. Endereço residencial, Cidade, Estado e Cep. Para inclusão das informações de segurança na reserva antes da emissão do bilhete;
\r\n
\r\n
\r\n VIAGENS NACIONAIS
\r\n
\r\n
\r\n
\r\n Chegar no aeroporto com 2 horas de antecedência para o embarque;
\r\n Apresentação obrigatória de um documento de identificação original com foto e atual para embarque;
\r\n Favor sempre informar o número de identidade, cartão de milhas e preferência de assento do passageiro no momento da reserva;\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n

Helper

\r\n

\"Descrição:

\r\n

\"\"Dados da Ação
Forma de atendimento: DESK MANAGER
Causa: ATUALIZAÃ\u0087Ã\u0083O

\"\" Descrição da Ação:
 Bom dia \r\n
\r\n
cadastrado atualizado cliente control xpto certifications

Atenciosamente,
DONALD L. THRUMP
donald.thrump@domain.com
Telefone: (11)5555-2222


 \r\n Para visualizar o conteúdo da Ação, por favor acessar:
\r\n https://domain.deskserver.ms/?LoginPortal\r\n
\"\" Este e-mail é gerado automaticamente.

\r\n\r\n \r\n \r\n \r\n\r\n\r\n", message.BodyHtml.Text); + Assert.AreEqual(0, message.Attachments.Count); + Assert.AreEqual(2, message.LeafMimeParts.Count); + } } } diff --git a/Class Library/ActiveUp.Net.Tests/Common/TraceInfoTests.cs b/Class Library/ActiveUp.Net.Tests/Common/TraceInfoTests.cs new file mode 100644 index 0000000..891bfd9 --- /dev/null +++ b/Class Library/ActiveUp.Net.Tests/Common/TraceInfoTests.cs @@ -0,0 +1,17 @@ +using ActiveUp.Net.Mail; +using NUnit.Framework; +using System; + +namespace ActiveUp.Net.Tests.Common +{ + [TestFixture] + public class TraceInfoTests + { + [Test] + public void should_process_null_values() + { + var test = new TraceInfo(null, DateTime.MinValue, null, null, null, null, null); + Assert.AreEqual("", test.ToString()); + } + } +} diff --git a/Class Library/ActiveUp.Net.Tests/resource/content-transfer-encode-8bit-html-special-char.eml b/Class Library/ActiveUp.Net.Tests/resource/content-transfer-encode-8bit-html-special-char.eml new file mode 100644 index 0000000..0863503 --- /dev/null +++ b/Class Library/ActiveUp.Net.Tests/resource/content-transfer-encode-8bit-html-special-char.eml @@ -0,0 +1,169 @@ +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=optionalserver.onmicrosoft.com; s=selector1-hostway-travel; + h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; +Authentication-Results: spf=none (sender IP is ) + smtp.mailfrom=fromemail@domain.com; +Received: from deskserver.ms (50.80.200.123) by + GRUPR80MB1276.lamprd80.prod.com (10.164.107.99) with Microsoft SMTP + Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id + 15.20.77.7; Wed, 27 Sep 2017 12:34:46 +0000 +Date: Wed, 27 Sep 2017 09:34:39 -0300 +Return-Path: fromemail@domain.com +To: destinatary@domain.com +From: Client support +Reply-to: Client support +Subject: CLIENT - BRASIL Status: OPEN / RESOLVED #0917-000622 +Message-ID: <3a8c760555b716f3834fef3a2b05f160@deskserver.ms> +X-Priority: 3 +X-Mailer: PHPMailer 5.1 (phpmailer.sourceforge.net) +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="b1_3a8c760555b716f3834fef3a2b05f160" + + +--b1_3a8c760555b716f3834fef3a2b05f160 +Content-Type: text/plain; charset = "iso-8859-1" +Content-Transfer-Encoding: 8bit + +Para visualizar a mensagem, por favor, use um cliente de e-mail compatível/configurado para ver mensagens HTML! + + +--b1_3a8c760555b716f3834fef3a2b05f160 +Content-Type: text/html; charset = "iso-8859-1" +Content-Transfer-Encoding: 8bit + + + + + + + + + + + +
+ Qualquer dúvida estou a disposição.
+
+ Atenciosamente,
+
+
+
+
+
+
+
+
+
+
+
+
+ Ronald Santander
+ _________________________
+
+ CLIENT
+ Consultor de Viagens
+ Tel.: + (55 11) 2222-4444
+ Tel.: + (55 11) 3333-6666
+
+
+
+ Outros telefones
+
+
+
+
+
+
+ ATENÇÃO!
+
+
+
+ Prezado cliente, Seguindo a nova resolução do Regulador XXXXX, homologada em Abril/2016, e que impõe a emissão de certificado de seguro viagem individuais, tanto para viagem doméstica quanto internacional, as bandeiras American Express, Mastercard e Visa estão migrando o processo de emissão do certificado do seguro viagem, benefício incluso em suas soluções corporativas de pagamentos se utilizado pela sua empresa.
+
+
+ Todos os novos procedimentos de emissão do certificado do seguro viagem foram comunicados e disponibilizados aos gestores de viagens da sua empresa. Caso não tenha conhecimento do novo procedimento, se faz necessário verificar com o gestor responsável de sua empresa, pois a emissão do certificado é de total responsabilidade do viajante e requer acesso a ferramenta de emissão a cada viagem, por meio de login, senha e dados pessoais.
+
+
+
+ INFORMAÇÕES IMPORTANTES
+
+
+
+ A garantia da reserva, do assento e da tarifa são a emissão do bilhete;
+ Tarifas sujeitas a alteração sem prévio aviso.
+ Atenção ao prazo de emissão das reservas;
+ Para alterações, cancelamentos ou reembolsos há incidência de multas e/ou diferenças tarifárias conforme regra do bilhete;
+ Multa por Churning: Segundo a política de reservas, poderá haver cobrança de multa em caso de solicitação/realização de sucessivas operações para o mesmo passageiro/ cia aérea/trecho. Esta cobrança, multa por Churning - Excessive or constant book/cancel activity , ocorre quando a cia aérea detecta o mesmo trecho aéreo ou parte dele solicitado a partir da segunda vez em datas idênticas ou próximas (até 5 dias antes ou depois para ida e/ou volta). As multas recebidas serão repassadas à empresa.
+
+
+ VIAGENS INTERNACIONAIS PARA BRASILEIROS
+
+
+
+ Chegar no aeroporto com 3 horas de antecedência para o embarque;
+ Apresentar passaporte com validade mínima de 6 meses;
+ Para países que necessitam de visto, o mesmo deve estar válido no momento do embarque;
+ Para países que exigem vacina contra febre amarela, apresentar comprovante internacional com período de incubação de 10 dias;
+ Para maiores informações sobre vacinas necessárias ou indicadas para seu destino visite o site: http://www.anvisa.gov.br/viajante/ ;
+ Para viagens internacionais é necessário informar o Nome completo do passageiro (idêntico ao Passaporte), Data de nascimento, Número do passaporte, País de emissão do passaporte, Validade, Nacionalidade, País de residência, País de destino, Endereço no destino, Cidade, Estado, Cep. Endereço residencial, Cidade, Estado e Cep. Para inclusão das informações de segurança na reserva antes da emissão do bilhete;
+
+
+ VIAGENS NACIONAIS
+
+
+
+ Chegar no aeroporto com 2 horas de antecedência para o embarque;
+ Apresentação obrigatória de um documento de identificação original com foto e atual para embarque;
+ Favor sempre informar o número de identidade, cartão de milhas e preferência de assento do passageiro no momento da reserva; + +
Dados da Ação
+ + Forma de atendimento: +  DESK MANAGER + + + + Causa: +  ATUALIZAÇÃO + +
+ + + Descrição da Ação: + + +   + Bom dia +
+
cadastrado atualizado cliente control xpto certifications

Atenciosamente,
DONALD L. THRUMP
donald.thrump@domain.com
Telefone: (11)5555-2222
+ + +


+ + +   + + Para visualizar o conteúdo da Ação, por favor acessar:
+ https://domain.deskserver.ms/?LoginPortal + + + + + + Este e-mail é gerado automaticamente. + + +
+ + + + + + + + +--b1_3a8c760555b716f3834fef3a2b05f160-- \ No newline at end of file diff --git a/Class Library/ActiveUp.Net.Tests/resource/content-transfer-encode-8bit-utf8-flowed.eml b/Class Library/ActiveUp.Net.Tests/resource/content-transfer-encode-8bit-utf8-flowed.eml new file mode 100644 index 0000000..5e6f746 --- /dev/null +++ b/Class Library/ActiveUp.Net.Tests/resource/content-transfer-encode-8bit-utf8-flowed.eml @@ -0,0 +1,590 @@ +Subject: Re: BLA BLÁ BLA XYZ/ XYZ / TROCA DE PACOTES origem ABC Destino XYZ x XYZ + Nfs 666666 / 777777 Fornecedor Xamego INDUSTRIA +To: Fer/ Xamego +References: <14919984602065176398@webmail.manodoc.com.br> +From: Fulano +Message-ID: +Date: Wed, 12 Apr 2017 15:32:00 -0300 +User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 + Thunderbird/45.7.1 +MIME-Version: 1.0 +In-Reply-To: +Content-Type: multipart/alternative; + boundary="------------6E748F47A8B6FDF617BBE981" + +This is a multi-part message in MIME format. +--------------6E748F47A8B6FDF617BBE981 +Content-Type: text/plain; charset=utf-8; format=flowed +Content-Transfer-Encoding: 8bit + +Boa tarde, + +*Fulano*, conforme o conversado em nosso teste, os dados do erro ja +foram coletados, estamos trabalhando com a máxima urgência afim de +efetuarmos a identificação. + +_Em contato com o cliente estou tentando reproduzir o problema +nesta mensagem._ + +_*Ciclano*( Empresa B ), por gentileza, conforme ja conversado, peço, +priorizar acompanhar a estrutura errada deste e-mail._ + + +Certa da atenção, agradeço + + +*Reinaldo Coelho * +Nosso Grupo + +* +Em 12/04/2017 09:10, Fulano escreveu: +> +> Ok, Agradeço a atenção Ciclano. +> +> *Reinaldo Coelho * +> *Meu cargo atual* +> EmpresaX +> *Fone:(11) 2222-4444 / Ramal: 123 ** +> *Email:mary.anne@EmpresaX.com.br +> * +> *Acesse nosso site:www.EmpresaX.com.br * +> Nosso Grupo +> +> * +> Em 12/04/2017 09:01, Florencia Ramos Conceição escreveu: +>> +>> +>> +>> Sim volumes pertencido a XYZ já desembarcarão e segue hoje para +>> araguaina-to +>> +>> Duvidas a disposição. +>> +>> +>> -- +>> *Florencia Ramos Conceição* +>> * Pendencia Fiscal* +>> +>> *Fone:(12)1111-6333* +>> *Email:xyz.pendencias1@EmpresaX.com.br* +>> *Acesse nosso site:www.EmpresaX.com.br * +>> +>> *----- Original Message ----* +>> *From:* mary.anne@EmpresaX.com.br +>> *To:* "Florencia Ramos Conceição" (xyz.pendencias1@EmpresaX.com.br) +>> *Cc:* "Carlão Steave" (vendasnonorte@prego.com.br) +>> *Date:* Tue, 11 Apr 2017 15:11:37 -0300 +>> *Subject:* Re: BLA BLÁ BLA XYZ/ XYZ / TROCA DE PACOTES origem ABC Destino +>> +>> Boa tarde, +>> +>> tentei contato telefônico, porem não foi possível; o cliente que +>> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +>> yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy +>> informar se o volume do mesmo ja consta em XYZ??? +>> +>> Fico no aguardo para informarmos ao cliente. +>> +>> Agradeço +>> +>> att, +>> +>> *Reinaldo Coelho * +>> *Meu cargo atual* +>> +>> *Fone:(11) 2222-4444 / Ramal: 123 ** +>> *Email:mary.anne@EmpresaX.com.br +>> * +>> *Acesse nosso site:www.EmpresaX.com.br +>> * +>> +>> +>> * +>> Em 05/04/2017 17:03, Florencia Ramos Conceição escreveu: +>> +>> +>> Esta seguindo os dois +>> +>> +>> -- +>> *Florencia Ramos Conceição* +>> * Pendencia Fiscal* +>> +>> *Fone:(12)1111-6333* +>> *Email:xyz.pendencias1@EmpresaX.com.br* +>> *Acesse nosso site:www.EmpresaX.com.br +>> * +>> +>> *----- Original Message ----* +>> *From:* XYZ.pendencia04@EmpresaX.com.br +>> *To:* "Florencia Ramos Conceição" +>> (xyz.pendencias1@EmpresaX.com.br), "Fulano" +>> (mary.anne@EmpresaX.com.br) +>> *Date:* Wed, 5 Apr 2017 16:58:34 -0300 +>> *Subject:* Re: BLA BLÁ BLA XYZ/ XYZ / TROCA DE PACOTES origem ABC Destino +>> +>> Ok, lembrando que trata-se de dois volume de XYZ. +>> +>> Obrigada. +>> +>> +>> +>> +>> +>> Em 5/4/2017 16:53, Florencia Ramos Conceição escreveu: +>> +>> Volume pertencido a filial XYZ esta seguindo +>> atraves de RRI-0031800000 +>> +>> +>> -- +>> *Florencia Ramos Conceição* +>> * Pendencia Fiscal* +>> +>> *Fone:(12)1111-6333* +>> *Email:xyz.pendencias1@EmpresaX.com.br* +>> *Acesse nosso site:www.EmpresaX.com.br +>> * +>> +>> *----- Original Message ----* +>> *From:* XYZ.pendencia04@EmpresaX.com.br +>> *To:* "Fulano" (mary.anne@EmpresaX.com.br), +>> "Florencia Ramos Conceição" +>> (xyz.pendencias1@EmpresaX.com.br) +>> *Date:* Wed, 5 Apr 2017 09:15:54 -0300 +>> *Subject:* BLA BLÁ BLA XYZ/ XYZ / TROCA DE PACOTES origem ABC Destino +>> +>> Bom dia ! +>> +>> Fulano, +>> +>> +>> Essa destroca esta difícil de ser resolvida, pois +>> os volumes que se encontravam em XYZ , foi +>> enviado , e até o momento não foi nos enviado os +>> nossos corretos . O cliente XYZ nos cobra +>> posicionamento , e se que tenho retorno da filial +>> XYZ. +>> +>> Favor resolver esse caso , o quanto antes. +>> +>> +>> +>> Em 5/4/2017 08:48, Fulano escreveu: +>> +>> Bom dial, +>> +>> Pessoal informaçoes referente a +>> destroca??...pXYZiso de um retorno*URGENTE, +>> *pois o fornecedor( nossoMONITORADO) tem nos +>> cobra regularmente este posicionamento. +>> +>> Fico no aguardo, para que possamos +>> comunica-lo o mais breve possival +>> +>> att, +>> +>> *Reinaldo Coelho * +>> *Meu cargo atual* +>> +>> *Fone:(11) 2222-4444 / Ramal: 123 ** +>> *Email:mary.anne@EmpresaX.com.br* +>> *Acesse nosso site:www.EmpresaX.com.br* +>> +>> +>> * +>> Em 03/04/2017 09:48, Fulano escreveu: +>> +>> Bom dia, +>> +>> Ciclano assim que possível posicionar, +>> peço também que verifique a XYZusa do +>> cliente sobre 3 volumes, pois o erro era +>> apenas em 2 volumes, sendo estes para a +>> filial de XYZ... +>> +>> *Reinaldo Coelho * +>> *Meu cargo atual* +>> +>> *Fone:(11) 2222-4444 / Ramal: 123 ** +>> *Email:mary.anne@EmpresaX.com.br* +>> *Acesse nosso site:www.EmpresaX.com.br* +>> +>> +>> * +>> Em 03/04/2017 09:44, Gabriela Xavier escreveu: +>> +>> Bom dia ! +>> +>> Temos algum posicionamento ? +>> +>> Nosso cliente nos cobra RETORNO COM +>> URGÊNCIA... +>> +>> +>> Em 31/3/2017 09:35, Fulano escreveu: +>> +>> Bom dia, +>> +>> Ok, agradeço a atenção. +>> +>> *Reinaldo Coelho * +>> *Meu cargo atual* +>> +>> *Fone:(11) 2222-4444 / Ramal: 123 ** +>> *Email:mary.anne@EmpresaX.com.br* +>> +>> *Acesse nosso +>> site:www.EmpresaX.com.br* +>> +>> +>> * +>> Em 31/03/2017 09:25, Ciclano +>> Ramos Conceição escreveu: +>> +>> Valéria Bom Dia +>> +>> Trata-se de rota do interior, +>> no qual já foi XYZusado os 03 +>> volumes pelo cliente, e +>> parceiro já esta retornando +>> com mercadoria para +>> transportadora para estarmos +>> verificando, assim que tiver +>> ok, informo ID de envio para +>> acompanhamento, +>> +>> Duvidas a disposição. +>> +>> +>> -- +>> *Florencia Ramos Conceição* +>> * Pendencia Fiscal* +>> +>> *Fone:(12)1111-6333* +>> *Email:xyz.pendencias1@EmpresaX.com.br* +>> +>> *Acesse nosso +>> site:www.EmpresaX.com.br* +>> & amp; lt; /p> +>> +>> *----- Original Message ----* +>> *From:* +>> XYZ.pendencia04@EmpresaX.com.br +>> *To:* "Fulano" +>> (mary.anne@EmpresaX.com.br), +>> "Roque Neto" +>> (xyz.pendencias1@EmpresaX.com.br) +>> *Date:* Fri, 31 Mar 2017 +>> 08:56:52 -0300 +>> *Subject:* BLA BLÁ BLA XYZ/ +>> XYZ / TROCA DE PACOTES origem +>> ABC Destino +>> +>> Bom dia ! +>> +>> Ciclano, +>> +>> +>> Favor nos posicionar +>> referente ao volume de +>> XYZ , pois o mesmo nos +>> cobra retorno COM URGÊNCIA. +>> +>> +>> +>> Em 30/3/2017 08:24, Fulano +>> escreveu: +>> +>> Bom dia, +>> +>> Gabriela, agradeço o +>> retorno. +>> +>> Ciclano, assim que +>> possível nos +>> posicionar frente ao +>> envio do volume de XYZ. +>> +>> Obrigada. +>> +>> att, +>> +>> *Reinaldo Coelho * +>> *Meu cargo atual* +>> +>> *Fone:(18) 2103-4777 +>> / Ramal: 725 ** +>> *Email:mary.anne@EmpresaX.com.br* +>> +>> *Acesse nosso +>> site:www.EmpresaX.com.br* +>> +>> +>> * +>> Em 29/03/2017 10:35, +>> Gabriela Xavier escreveu: +>> +>> Bom dia ! +>> +>> Troca confirmada +>> , os volumes de +>> XYZ serão +>> enviados hoje +>> através dos RRIs +>> 35468888 / +>> 31755555 , devido +>> a fiscalização. +>> +>> Gentileza +>> acompanhar +>> desembarque dos +>> mesmos, e nos +>> enviar os nossos +>> com urgência... +>> +>> +>> +>> +>> Bueno , +>> +>> Favor associar a +>> devida viagem em +>> sistema do SSAAS +>> abaixo , hoje. +>> +>> +>> +>> +>> +>> +>> +>> +>> +>> -- +>> +>> Em 29/3/2017 +>> 08:21, Fulano +>> escreveu: +>> +>> Bom dia, +>> +>> Ok, por +>> gentileza, +>> assim que +>> tiver +>> informaçoes +>> referente a +>> este volume +>> comunique por +>> favor, para +>> que a +>> destroca seja +>> efetuada o +>> mais breve +>> possivel. +>> +>> *Reinaldo Coelho * +>> *Auxiliar +>> Manutenção* +>> +>> *Fone:(18) +>> 2103-4777 / +>> Ramal: 725 ** +>> *Email:mary.anne@EmpresaX.com.br* +>> +>> *Acesse nosso +>> site:www.EmpresaX.com.br* +>> +>> +>> * +>> Em 28/03/2017 +>> 17:50, +>> Ciclano Ramos +>> Conceição +>> escreveu: +>> +>> ok +>> +>> já +>> estamos +>> verificando. +>> +>> +>> -- +>> *Ciclano +>> Ramos +>> Conceição* +>> * Pendencia +>> Fiscal* +>> +>> *Fone:(12)1111-6333* +>> +>> *Email:xyz.pendencias1@EmpresaX.com.br* +>> +>> *Acesse +>> nosso +>> site:www.EmpresaX.com.br* +>> & amp; +>> amp; lt; /p> +>> +>> *----- +>> Original +>> Message ----* +>> *From:* +>> mary.anne@EmpresaX.com.br +>> *To:* +>> "Roque +>> Neto" +>> (xyz.pendencias1@EmpresaX.com.br), +>> "Gabriela +>> Xavier" +>> (XYZ.pendencia04@EmpresaX.com.br) +>> *Cc:* +>> "Logística +>> | Grupo +>> Xamego" +>> (logistica@Xamego.com.br) +>> *Date:* +>> Tue, 28 +>> Mar 2017 +>> 17:36:24 +>> -0300 +>> *Subject:* +>> BLA BLÁ BLA XYZ/ XYZ / +>> TROCA DE PACOTES origem ABC Destino +>> +>> Boa +>> tarde +>> colegas, +>> +>> Os +>> conhecimentos +>> citados +>> constam +>> em +>> entrega, +>> porem +>> houve +>> troca +>> de +>> etiquetagem +>> em +>> XYZ, +>> desta +>> forma, +>> peço +>> a +>> atenção +>> para +>> que +>> possamos +>> destrocar +>> o +>> mais +>> breve +>> possível +>> +>> XYZ +>> 322433, +>> CLIENTE +>> ME DE +>> S +>> CASTRO +>> (XYZ), +>> trocado +>> com o +>> AWB +>> 383555, +>> CLIENTE +>> XE +>> MENTES(XYZ) +>> +>> (O +>> cliente +>> XE +>> MENTES, +>> conforme +>> informaçoes, +>> devolveu +>> a +>> mercadoria +>> no +>> ato +>> da +>> entrega) +>> +>> *Gabriela* +>> por +>> gentileza, +>> verificar +>> informação +>> de +>> devolução +>> para +>> que +>> se +>> possa +>> enviar +>> o +>> volume +>> para +>> XYZ, +>> por +>> gentileza. +>> +>> *Anislei,* +>> não +>> temos +>> informaçoes +>> de +>> que o +>> cliente +>> de +>> XYZ, +>> ja +>> verificou +>> o +>> erro, +>> desta +>> forma, +>> peço, +>> entrar +>> em +>> contato +>> com a +>> tripulação +>> para +>> que a +>> entrega +>> não +>> seja +>> finalizada, +>> e +>> encaminhar +>> o +>> volume +>> para XYZ +>> +>> Fico +>> no +>> aguardo, +>> pois +>> trata-se +>> de um +>> cliente +>> monitorado +>> +>> *Valéria +>> Coelho * +>> *Auxiliar +>> Manutenção* +>> +>> +>> *Fone:(11) +>> 2100-4777 +>> / +> + + +--------------6E748F47A8B6FDF617BBE981-- \ No newline at end of file diff --git a/Class Library/ActiveUp.Net.Tests/resource/content-transfer-encode-8bit.eml b/Class Library/ActiveUp.Net.Tests/resource/content-transfer-encode-8bit.eml new file mode 100644 index 0000000..1131c41 --- /dev/null +++ b/Class Library/ActiveUp.Net.Tests/resource/content-transfer-encode-8bit.eml @@ -0,0 +1,60 @@ +Delivered-To: test@gmail.com +Received: by 10.74.160.23 with SMTP id m23csp804194ook; + Thu, 16 Mar 2017 08:08:37 -0700 (PDT) +X-Received: by 10.55.6.150 with SMTP id 144mr8056253qkg.46.1489676917228; + Thu, 16 Mar 2017 08:08:37 -0700 (PDT) +Return-Path: +Received: from mail-qk0-x229.google.com (mail-qk0-x229.google.com. [2607:f8b0:400d:c09::229]) + by mx.google.com with ESMTPS id a64si3758726qkf.331.2017.03.16.08.08.37 + for + (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); + Thu, 16 Mar 2017 08:08:37 -0700 (PDT) +Received-SPF: pass (google.com: domain of sender@gmail.com designates 2607:f8b0:400d:c09::229 as permitted sender) client-ip=2607:f8b0:400d:c09::229; +Authentication-Results: mx.google.com; + dkim=pass header.i=@gmail.com; + spf=pass (google.com: domain of sender@gmail.com designates 2607:f8b0:400d:c09::229 as permitted sender) smtp.mailfrom=sender@gmail.com; + dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com +Received: by mail-qk0-x229.google.com with SMTP id 1so37366903qkl.3 + for ; Thu, 16 Mar 2017 08:08:37 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=gmail.com; s=20161025; + h=message-id:date:mime-version:from:to:subject + :content-transfer-encoding; + bh=2QnvsTh9E3ypZ4ixMqGitbrJs0JbGOtjdI7L1BPGDqU=; + b=fc5g3ktEYw5YquimyXeRkbhamf3Jdvuq7aCpJvsg7SfPdVDIdR/P7UT3lvqpW1KI9j + L0I8imuun1ee+TbRK99Z8ECimhvWtrEhZMLrqCa01nRjjoJmFLe8c82Ox423FMmiE7Tp + N7DAX5jIWiiLuw+8lwpF2vA2yW4m2QTCqplmc7iXjwIdXI2yPRPEp4zarYC/ir/blBTQ + oCSPiYvB2fohqTMnjR+ptes0P2IQE2b4uQL2WIFCQnv4GaBnjTJyOssgDnU/jRgAisrZ + 7vFUx0dJ5eM3aWPO89r29fZL4OR+H/5wlVH0rmow378wJnwQXwgLirO2mxk99MdSAgPA + 4+3A== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20161025; + h=x-gm-message-state:message-id:date:mime-version:from:to:subject + :content-transfer-encoding; + bh=2QnvsTh9E3ypZ4ixMqGitbrJs0JbGOtjdI7L1BPGDqU=; + b=fq8X2mVZ80d73QoN1x2SBUvq+BtR3rXI90xApapNiuFHl1F2ueIx+HRu2MPLpKgXqa + P/IsSSUBAA4xktfT2NS2UThHNbK5DJb60zlFU9scwy/mFyiNmykwzGX+ffZOgSzsiCkE + zPLY/bOvqyDlc21slD1gqPgdm7pMronW/6VX2JbrK07GTEulJiOkAZnEQx1Qfff+yab7 + Leb4K5W8lqDYSI9qmcpMP+Dn/7LbjdZlZfI63Z1w2dVsgAcjHw1JhoaXh/auUT+FMVXP + t12UYcyNWMBKmP8zd7bD+1x32S2Cc9/HNaQSRhRNyYd8g2y9b+klobYheyIMIkHvA+Ve + ve0Q== +X-Gm-Message-State: AFeK/H3g7AlcgYq1mtEc/Eudw1nWyBHvrf5jBa6KyocTGRNQDtHWppI/pmsbhDy4imkRbsM6 +X-Received: by 10.55.158.87 with SMTP id h84mr8181387qke.15.1489676916814; + Thu, 16 Mar 2017 08:08:36 -0700 (PDT) +Return-Path: +Received: from DESKTOP-J2NGVFS ([177.139.33.240]) + by smtp.gmail.com with ESMTPSA id w35sm3805749qtc.55.2017.03.16.08.08.35 + for + (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); + Thu, 16 Mar 2017 08:08:36 -0700 (PDT) +Message-ID: <58caaa74.6625ed0a.22a2d.5376@mx.google.com> +Date: Thu, 16 Mar 2017 08:08:36 -0700 (PDT) +X-Google-Original-Date: 16 Mar 2017 12:08:32 -0300 +MIME-Version: 1.0 +From: sender@gmail.com +To: test@gmail.com +Subject: Special char test çãõáéíóú +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 8bit + +Body special char test çãõáéíóú \ No newline at end of file diff --git a/Class Library/ActiveUp.Net.Tests/resource/html_multipart_related_email_with_subparts.eml b/Class Library/ActiveUp.Net.Tests/resource/html_multipart_related_email_with_subparts.eml index 70b8806..9144d0d 100644 --- a/Class Library/ActiveUp.Net.Tests/resource/html_multipart_related_email_with_subparts.eml +++ b/Class Library/ActiveUp.Net.Tests/resource/html_multipart_related_email_with_subparts.eml @@ -41,7 +41,7 @@ Content-Transfer-Encoding: quoted-printable Hi, -Im the first step of message to test. +I'm the first step of message to test. Sender Helper diff --git a/Class Library/ActiveUp.Net.Tests/resource/only_header.eml b/Class Library/ActiveUp.Net.Tests/resource/only_header.eml new file mode 100644 index 0000000..57d9e12 --- /dev/null +++ b/Class Library/ActiveUp.Net.Tests/resource/only_header.eml @@ -0,0 +1,39 @@ +Received: (qmail 54705 invoked by uid 89); 28 Aug 2017 14:51:48 -0300 +Delivered-To: postseller@destinatary.com.br +Received: (qmail 54686 invoked from network); 28 Aug 2017 14:51:47 -0300 +Received: by simscan 1.4.0 ppid: 54607, pid: 54648, t: 2.9204s + scanners: clamav: 0.99.2/m:/d:23727 spam: 3.4.1 +X-Spam-Checker-Version: SpamAssassin: -last, FreeBSD Brasil LTDA rulesets: Yes +X-Spam-Status: No, hits=-1.6 required=5.0 +Received: from unknown ([200.147.97.220]) + (envelope-sender ) + by color.serveru.us (qmail-ldap-1.03) with SMTP + for ; 28 Aug 2017 14:51:44 -0300 +Received: from localhost (localhost.localdomain [127.0.0.1]) + by a4-salsa1.host.com.br (Postfix) with ESMTP id C56FB380009F + for ; Mon, 28 Aug 2017 14:55:45 -0300 (BRT) +Received: from a4-salsa1.host.intranet (localhost.localdomain [127.0.0.1]) + by a4-salsa1.host.com.br (Postfix) with ESMTP id AD4CF380009B + for ; Mon, 28 Aug 2017 14:55:45 -0300 (BRT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=host.com.br; s=afl; + t=1503942945; bh=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=; + h=Date:From:To:In-Reply-To:References:Subject; + b=ikMN+aVF4eIDnS6T6mrnzUNHPBtTqrZJgTuZh3dPK/WqrE5JQzp6izefol5kMNHyi + 1CLGtQ3UutOWtdD1g2JsugJD0SrwuVGxQ9bkcTZX6zRkkETnPKJj/Y6XBxHrSZhWEd + 2Zq0nQLoGZOwDDzwWoHHUpnKasVy7TXHp8/NrBO4= +Received: from localhost (a4-winter6.host.intranet [10.131.133.132]) + by a4-salsa1.host.intranet (Postfix) with ESMTP id A51303800081 + for ; Mon, 28 Aug 2017 14:55:45 -0300 (BRT) +Date: Mon, 28 Aug 2017 14:55:45 -0300 +From: "sender@host.com.br" +To: "postseller@destinatary.com.br" +Message-ID: <59a459219e757_52803fc2847231301918b@a4-winter6.mail> +In-Reply-To: +References: +Subject: I'm put all my text message on subject, then no has body in this e-mail. + second line exists too. +Mime-Version: 1.0 +Content-Type: text/html +Content-Transfer-Encoding: 7bit +X-SenderIP: 200.164.35.146 +X-SIG5: d41d8cd98f00b204e9800998ecf8427e diff --git a/Class Library/ActiveUp.Net.Tests/resource/only_header_2.eml b/Class Library/ActiveUp.Net.Tests/resource/only_header_2.eml new file mode 100644 index 0000000..55765ed --- /dev/null +++ b/Class Library/ActiveUp.Net.Tests/resource/only_header_2.eml @@ -0,0 +1,70 @@ +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hostway.travel; + s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; + bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=; + b=JIAhrdolQUVfO4Q3xKUZ2UqFmDgMuG7QPLpz6Jch9jBiwpcdzzwFuGSC0ys1xQm3dfOyM54NieAyJ9Mv64LGU4VxN1ewKMDIgdz1zleYnRwMnfO6p4yokx25ubyb02BCI1MAUXflRLBsU0LJ5kKyX/fZgRAtAU3UmyFL23tu0+Q= +Resent-From: +Received: from CP2PR80CA0150.lamprd80.prod.outlook.com (10.165.252.16) by + RO1PR80MB0106.lamprd80.prod.outlook.com (10.164.233.15) with Microsoft SMTP + Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id + 15.20.218.12; Tue, 14 Nov 2017 12:53:11 +0000 +Received: from CY1NAM02FT029.eop-nam02.prod.protection.outlook.com + (2a01:111:f400:7e45::200) by CP2PR80CA0150.outlook.office365.com + (2603:10d6:102:2d::16) with Microsoft SMTP Server (version=TLS1_2, + cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.218.12 via Frontend + Transport; Tue, 14 Nov 2017 12:53:10 +0000 +Authentication-Results: spf=none (sender IP is 154.16.167.2) + smtp.mailfrom=abidos.com.br; hostwayviagens.com.br; dkim=none (message not + signed) header.d=none;hostwayviagens.com.br; dmarc=none action=none + header.from=abidos.com.br; +Received-SPF: None (protection.outlook.com: abidos.com.br does not designate + permitted sender hosts) +Received: from mail.supermercadodeofertas.com.br (154.16.167.2) by + CY1NAM02FT029.mail.protection.outlook.com (10.152.75.143) with Microsoft SMTP + Server id 15.20.197.9 via Frontend Transport; Tue, 14 Nov 2017 12:53:09 +0000 +From: Faculdade Faveni +To: "vipdesk@hostwayviagens.com.br" +Subject: =?UTF-8?B?Q29uY2x1YSBzdWEgcG9zIGVtIDYgbWVzZXMhISE=?= +Date: Tue, 14 Nov 2017 12:53:08 +0000 +X-Ref-1: Cvl5H O6K +Reply-To: +Return-Path: parceiro@abidos.com.br +List-Unsubscribe: +Content-Type: text/html; charset="iso-8859-1" +Content-Transfer-Encoding: base64 +Message-ID: +X-EOPAttributedMessage: 0 +X-EOPTenantAttributedMessage: c709a8cf-ebee-4c19-a146-0139aa7878ea:0 +X-Forefront-Antispam-Report: + CIP:154.16.167.2;IPV:NLI;CTRY:US;EFV:NLI;SFV:SPM;SFS:(6009001)(5340300001)(2980300002)(1130300004)(428002)(596005)(359002)(189002)(199003)(349900001)(349012);DIR:INB;SFP:;SCL:9;SRVR:RO1PR80MB0106;H:mail.supermercadodeofertas.com.br;FPR:;SPF:None;PTR:mail.supermercadodeofertas.com.br;MX:1;A:1;CAT:BULK;LANG:pt; +X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT029;1:5iB2mHzYdLSfWpys5C1W2zYscpk7aAsHRSBTdlDvUaPaquE3BTfEQ6v29UtYzPw28TC9xq5OWwgs80FBDoL69UzudG+bYPmtah5+svLY6iWkQXUcaYj6GRIsOyQRBPeK +MIME-Version: 1.0 +X-MS-PublicTrafficType: Email +X-MS-Office365-Filtering-Correlation-Id: dd2959b8-1db5-444a-02ac-08d52b5ea8ad +X-Microsoft-Antispam: + UriScan:;BCL:9;PCL:0;RULEID:(22001)(23075)(4534020)(71702078);SRVR:RO1PR80MB0106; +X-Microsoft-Exchange-Diagnostics: + 1;RO1PR80MB0106;3:xoefwlKJjTJXRhA6nBdPYy8mcZlnCisNRM26nnqvxtLr34Rr8N9LYA6wVBlJ3j7Pxn54VC4oXoWFU83rJ/cuy0tS1zUDMwGn400tJ3c+YoiRw8vyP1hdbrkie7Jh2PX3rTjkDcdPr7oFjfiue9RzfZdQ2otBpdbPlShWwTWCGSbURgtmproncI/YXM38wMoXaSI3Xi/n1rO8cxrUGNNGYUR63Opq8U1jss1ZWb4W3zqNb09+jbsx+UjP9c2sHTnKO5hIo2o2dPY5UxXHwagcCuJCrI2uoYDRyn119ZpCiF1FRtlMlIgBznOY1q7aHVcwd+2wOwHOQlOPuC88xmGngHVBXlr4u9FMcK96YT1uHko=;25:V5iGET4bRVrZX9tNaiw8Dil2OmzW5LHAI2fL/e0epIXUTFVk+8gGu4AhEVB4Oinj+3wbsXVvN0H1i8wrIQSnsx7dPDXUvTyfKgxI+QWMUgqqXYqMqR23f2QeqM1wIH2H3RzZTbXadSg148FMgIaKwlCVnKR1PULqz4HvDD5+u2aCc11/2JoIHwjUmRv+ZIux2jrzcuZiGbIrffa5BDn7R3+xDhgpVAinurpxxHUMFVo=;31:qnRgXldjWhbO3o3iYsqxA7Qxt8j1WwT8tw4JDPz2UWV+uZwGDBlWlOZpe7x25MX2emyjhCFInwcNhtC+eLTA8S0x5q+DkzfweLZ3s+gTUGl9vGgXuDE3OgQfxb1cl4L+ +X-MS-TrafficTypeDiagnostic: RO1PR80MB0106:|RO1PR80MB0106: +X-Microsoft-Exchange-Diagnostics: + 1;RO1PR80MB0106;20:1821yRltUnu9mEUaLRVdk8YldWGUdO0olj4O9ow92ogkH7WxhTlFaqRCpbv4JmP1oPjvqiGEfj+/OhYbn8UyMCX0B5s8gQMmPeWLQj6K563C0Bzxkvrt1t/zjTwloeVQJGeyeOO2DrwLqmX0TcyoQ3MoPCcLN9pd5/6hJr/zye3zGnd6LQCKjfBOM5wOMCaOUk71+cZeaQ2I6ulaNGpa5CrVX2UIOvr0KDVr22z0OqzPE+znDXtudCfbcm388MD1K5YBfG8KPZFemt6DKO2OF4xXWfRdAD6ztyJ3AtISEkxwNSKRtSFKOZC3xlix3o4nVHC/6YqLGr1zDeY3HT2PTPpjIvBQS3FN4h0oNBfi8eQVZwhNeP/ey1awPoS/C0EoTmILKRQIuTA9RkBsgAYTW5qiiQy9Lg8eZZqoJC+ksWx5+aRtsMb/acMaGKmcEToYrtma/PCu7czFJZspQzrTKfTI39x+y7jXNXo7nF3RvrieIFqunZdi72jl+Ofw+bMR;4:BfXDwh8IhSfcvwFsp7ed7EX3Ct2P2oQqK3vxSzM//qVuy4gHNizRVxNNj9mNsUAjqkgrRc5COX9iddUW/fw5QuRjlyyYvU+mPZRcFjqH58ri6BG7JK4xx6rU4MSKGMcoyi/z74wdLvHzXG8F/TxnupHIZ6OQ7ZN5NvjaR1AmXww= +X-Exchange-Antispam-Report-Test: UriScan:; +X-Exchange-Antispam-Report-CFA-Test: + BCL:9;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(2401047)(701105)(8121501046)(9101536074)(12181506113)(93006095)(93001095)(10201501046)(3231022)(8191506053)(100000703101)(100105400095)(3002001)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:RO1PR80MB0106;BCL:9;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:RO1PR80MB0106; +X-CustomSpam: Bulk Mail | Bulk Mail +X-Microsoft-Exchange-Diagnostics: + 1;RO1PR80MB0106;23:lPYVAgxML0JewdwN1imsBYvdYCEprqVIrjZrViLZnK1gR1suUVuvtm1jlD3oDOv2BbWUhLSwHM2lr4H0ftlfLcOLoYyAwn8XTYN9uHbySVsIywV2Kir+ioKNhu3T0PD7ZNmjawEePz3fyEc0kB6eQDHAFryBB+ekP8dN/aevjca6cuh/if43KpGMANH0F7B55qBR95ggt0qfMsfnoAj4oUOSlA+6Bq3qMGEMX2AuTY01lm9khHu57ezmW7X4Z2FnCx9Ivj68ccchaWeohvwjHoASwfIuEUPWHnC4WTyL/fm64qRzfLBch7r1JXb++XhOfk92JhMviTddq9wg5WFRqHId4dw+57BblBoGRg9dcUdfDJgtz+z6fQvJ0zdrdVNcfeueZNLTYBhsTR0LLr0jMA==;6:U6EZX0bE0jJHONnMpqF7HruQeVypc4CL4gybGeolMK8hec5qfyxnTzJZ5z6Mhyf7SErbgAxQyESCgcqw7p217c4f3O9+H4Eh0Wed74e+AP22e2XryrQpwE4Q102d8P1o3WIX8TMDLHNjs/nqlkIUxiaoj5BVXhnIFYBK8AjDMXEtK3Y8c+vDnT9bLe3Oeoj2oDVw5XrgjZ77lKf9m32EUkSBcDENzWi6Uqm+pwqxL2Sy0Al47CDLdi2HGnQs/z4/DAppEbXjLIX/M+SSAgGdfw/nqYh7SnKNmhyTNVTi0ew=;5:7WUK3/XjFKYxdorOjxj8RUaBmDCGLumtzVpcjwCY1gketxbXdQ2PtU5XRuedoNPnwhwihCoZ97oj9HWEx+QCSPqAby2DmsuQWWvGOL3EICPAQN5BCFrHzHUS56cqZtfA67gqhFVlzf98HGwuYhOFYoyj3te7QeGM5AlcLSjy1Ag= +X-Microsoft-Exchange-Diagnostics: + 1;RO1PR80MB0106;24:u/EmACmqz+2QxMUGTdOwuVj/kebIeTRYjlsSzmgXrN/zdXpeT7HeDNlpESy9JG5yp7yqHO3BQWC5zYuKvydE1g==;7:e0VmuoQ8hcaCk7ECv4JYTgsRzwFrjZEU3PBRlgRl0WtisNGUfxvRi+UCe2LGKJPZTEOGyy1wMk9cwW93HCr3hUUB7C+hFvmWUDHxzynP7zFAbqCvYjOiHTbAHDdy4oEbNFzMvpin2EOD1Bb56xBxu+lBotlu6Tqlp0uwfdL5uY5cpJrIwlbZ4B0qQj53RqAf9n1+BowuIPWxTnSD7YQbgesGH2cP5j0jnn4svHls26y4l4LHHmuCGZRDDxyGYM38eKeUzkiqilf4UgI3ImGJd3bXd6lkSB3mM0KYvxBigug=;20:CfwChLYxhEEfDmbUl99hmH6utIe/wdkeD1VKyp/dR/qFwDDusTG6R7GE/8QZXrqgd3/gVy0Nqx63w3XAXrIghGtcl17gK1XEK/DDEQDXNM8CKbJrg0uU9qeleI6NKcRJmuLy823/MriFk+reWV2F0UHUQDPKAJoKeNp84mALI2bHK3ltssEZ0a4niJ4xaXntZXNjiJMNVbgHT2fwMbwRCWFZ8r+38DjA5DmuLjMALIXBAn/i242uC9XjoD9yeyTDINLxjcG/SM9KuEMI2Vwe0kMZx2lixyidoCu7vF4NSrgfZKNA+u7v/lXQ5eEqNaqjY6etBh72vRMgyLcTzl16k7WxaeNm5uZ9hdyaLtVfFVoWbFj+q4wGGScA+8sOJbO51M9kTtuJP2Ut1wjiuvr9FyLkzlmdq+McDWSUmO+jMxyhYUj1SFp+dfu8idXHFUkm4Z4cFTCr08tKQ9K7dLBXL4oJ5hntOLNVEduZRFuQhLvio+9P+lZd+QJiyhmLoH57 +SpamDiagnosticOutput: 1:6 +SpamDiagnosticMetadata: Default:9 +X-MS-Exchange-Inbox-Rules-Loop: vipdesk@hostway.travel +X-Microsoft-Exchange-Diagnostics: + 1;RO1PR80MB0106;23:l70+jaaaGISH7JuWwWaWUQ1DYuHN8m9lK7iB0FD18yTRmoLhc3MygvoQH7u6jZeqlHNRXGeziSrP5NWKKOamHGumn6R87ZRK9lxrShcbKa2LVEAHeCgoyzo7yn3KmZLCBtQSS5TLfqSOfqwby52Uvw== +X-ExternalRecipientOutboundConnectors: c709a8cf-ebee-4c19-a146-0139aa7878ea +X-OriginatorOrg: hostway.travel +X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2017 12:53:09.0561 + (UTC) +X-MS-Exchange-CrossTenant-Network-Message-Id: dd2959b8-1db5-444a-02ac-08d52b5ea8ad +X-MS-Exchange-CrossTenant-Id: c709a8cf-ebee-4c19-a146-0139aa7878ea +X-MS-Exchange-CrossTenant-FromEntityHeader: Internet +X-MS-Exchange-Transport-CrossTenantHeadersStamped: RO1PR80MB0106 \ No newline at end of file diff --git a/Class Library/ActiveUp.Net.Tests/resource/quoted-printable-notepad-linebreak.eml b/Class Library/ActiveUp.Net.Tests/resource/quoted-printable-notepad-linebreak.eml index 21ce511..984e8e9 100644 --- a/Class Library/ActiveUp.Net.Tests/resource/quoted-printable-notepad-linebreak.eml +++ b/Class Library/ActiveUp.Net.Tests/resource/quoted-printable-notepad-linebreak.eml @@ -1,16 +1,16 @@ -Return-Path: +Return-Path: Received: from a2-sumeria7-2 (a2-sumeria7.host.intranet [10.129.137.204]) by cyruslmtpafil29-a with LMTPA; Fri, 15 Apr 2016 11:24:06 -0300 Received: from ch-host.clicholding.com.br (ch-host.clicholding.com.br [189.36.14.162]) by a2-snowball1.uhserver.com (Postfix) with ESMTP id 3qmftG5Mvlzft64R - for ; Fri, 15 Apr 2016 11:24:04 -0300 (BRT) + for ; Fri, 15 Apr 2016 11:24:04 -0300 (BRT) Received: from wtbweb08 ([127.0.0.1]) by ch-host.clicholding.com.br with Microsoft SMTPSVC(8.0.9200.16384); Fri, 15 Apr 2016 11:24:04 -0300 -Message-ID: <6b7922a0-7f40-444b-b6b9-b8b570552aaf@argoit.com.br> +Message-ID: <6b7922a0-7f40-444b-b6b9-b8b570552aaf@server.com> MIME-Version: 1.0 -From: =?iso-8859-1?Q?Gest=E3o_de_Viagens?= -To: "testeodare@encontact.com.br" +From: =?iso-8859-1?Q?Gest=E3o_de_Viagens?= +To: "testreceiver@enterprise.com" Date: 15 Apr 2016 11:24:04 -0300 Subject: =?iso-8859-1?Q?Solicita=E7=E3o_=2359_=2D_Aguardando_Cota=E7=E3?= =?iso-8859-1?Q?o_=2D_TESTE_HOTEL_=2D_TESTE_=2D_C=2E_Custo_TESTE_TES?= @@ -19,7 +19,7 @@ Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-OriginalArrivalTime: 15 Apr 2016 14:24:04.0524 (UTC) FILETIME=[769E8EC0:01D19722] -Alatur,=0D=0DFoi criada uma nova solicita=E7=E3o para TESTE SOLIC= +Sender,=0D=0DFoi criada uma nova solicita=E7=E3o para TESTE SOLIC= ITANTE.=0D=0DCliente: TESTE HOTEL=0DEmpresa: TESTE=0DC. Custo: TE= STE TESTE=0D=0D=0D>>> PASSAGEM A=C9REA=0DDescri=E7=E3o.: (GRU) Cu= mbica / (LAS) Las Vegas 04/Jan Manh=E3 (06:00 =E0s 12:00) (Econ=F4= @@ -27,11 +27,11 @@ mica)=0DHor=E1rio...: considerando sa=EDda=0DPagamento.: FATURADO= =0D=0DDescri=E7=E3o.: (LAS) Las Vegas / (GRU) Cumbica 07/Jan Manh= =E3 (06:00 =E0s 12:00) (Econ=F4mica)=0DHor=E1rio...: considerando= sa=EDda=0DPagamento.: FATURADO=0D=0D=0D>>> SOLICITANTE=0Dteste s= -olicitante (fulfillment@alatur.com)=0D=0D=0DDestinat=E1rios que e= -st=E3o recebendo esse email: =0Dtms@argoit.com.br (tms@argoit.com= -.br)=0Dteste solicitante (fulfillment@alatur.com)=0Dtesteodare@en= -contact.com.br (testeodare@encontact.com.br)=0Dodare@encontact.co= -m.br (odare@encontact.com.br)=0D=0DPara acess=E1-la clique em: =0D= - =0D=0D= EMAIL AUTOM=C1TICO, N=C3O RESPONDA ESSA MENSAGEM diff --git a/Class Library/ActiveUp.Net/ActiveUp.Net.nuspec b/Class Library/ActiveUp.Net/ActiveUp.Net.nuspec index 3aaa324..b688fb9 100644 --- a/Class Library/ActiveUp.Net/ActiveUp.Net.nuspec +++ b/Class Library/ActiveUp.Net/ActiveUp.Net.nuspec @@ -4,10 +4,10 @@ MailSystem.Net-trunk $version$ $title$ - pmengal (https://mailsystem.codeplex.com/team/view) + pmengal (https://github.com/pmengal/MailSystem.NET) pmengal - https://mailsystem.codeplex.com/license - https://mailsystem.codeplex.com + https://github.com/pmengal/MailSystem.NET/blob/master/LICENSE.txt + https://github.com/pmengal/MailSystem.NET false MailSystem is a suite of .NET components that provide users with an extensive set of email tools. MailSystem provides full support for SMTP, POP3, IMAP4, NNTP, MIME, S/MIME, OpenPGP, DNS, vCard, vCalendar, Anti-Spam (Bayesian , RBL, DomainKeys), Queueing, Mail Merge and WhoIs Mail Library csharp diff --git a/PoweredByNDepend.png b/PoweredByNDepend.png new file mode 100644 index 0000000..75b6dae Binary files /dev/null and b/PoweredByNDepend.png differ diff --git a/README.md b/README.md index f23fc03..280c0ec 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ In addition to the library, the suite provides the developer with a full feature - Triggers include Daily, Weekly, Monthly or a specific day, week and month of year - Multiple XML task list configuration file support -![Powered by ndepend](http://download-codeplex.sec.s-msft.com/Download?ProjectName=mailsystem&DownloadId=738843) +[![Powered by ndepend](PoweredByNDepend.png)](https://www.ndepend.com/) **Who's using this**