NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Если Вы не возражаете платить за компонент, мы имели большой успех с chilkat в прошлом. Для нескольких сотен маркеров Вы получаете библиотеку, это - затор, упакованный полный совершенства.
Существует несколько клиентских реализаций POP3 вокруг по codeproject.com. Я не оценил их, но возможно можно найти то, в чем Вы нуждаетесь там. В противном случае я могу сказать, что POP3 является настоящим простым протоколом. Можно даже считать поле POP3 с telnet, если Вы знаете 4-5 команд.
Вам на самом деле просто нужно это команды и возможно некоторое декодирование base64 для вложений. Вот именно.
Lumisoft является открытым исходным кодом и включает клиент POP (среди другого материала). Это было вокруг много лет, очень стабильно.
Я сделал свой собственный синтаксический анализатор Пантомимы и добавил его к CodePlex, потому что я продолжал сталкиваться с необработанными исключениями с другими, когда это прибыло в странную кодировку og странные комбинации вложений. pop3 клиентская реализация сыра, просто сделанная для тестирования, но дескрипторы это хорошо. Часть синтаксического анализатора Пантомимы заполняет стандартный объект MailMessage, так, чтобы можно было легко передать его в нем. Я могу расшириться/улучшить его по запросу, но на данный момент это делает задание хорошо для моих потребностей. Не стесняйтесь проверять его.
Смотрите на интеграцию POP3 в моем приложении с открытым исходным кодом BugTracker.NET в http://ifdefined.com/bugtrackernet.html . Весь свободный и с открытым исходным кодом. Самая твердая часть, парсинг пантомимы, сделана в BugTracker.NET SharpMimeTools в http://anmar.eu.org/projects/sharpmimetools/
важные файлы, которые показывают, как я использую POP3, и логика MIME POP3Client.cs и insert_bug.aspx.
Jmail.NET . Не смотрите далее. Обратите внимание, что бесплатная версия не включает POP3. Вы захотите взять Стандартную версию (или больше). Не волнуйтесь, это не дорого.
Почта C# доступна на Codeplex и довольно проста в использовании.
Конструктор класса SslStream был изменен и загружен. Рекомендуемая версия не имеет никакой проблемы использовать.
Я сделал реализацию OpenPop для проекта недавно и был доволен им. Это делает то, что это говорит относительно олова. (и это свободно.)
DasBlog использует пользу (и свободный) один - захватывают исходный пакет. Я использовал его (но я не могу помнить, кто записал его, и я не нахожусь на своем ноутбуке - Pavel L, я думаю?). Это не прекрасно, и это не делает SSL, но это работает приятно иначе.
Если вам нужен SSL для доступа к gmail ... вот некоторые изменения в библиотеке OpenPOP.net, которые обеспечивают поддержку SSL.
OpenPop.net изменен, чтобы включить поддержку SSL для доступа к Gmail
Вы можете включить почтовый компонент Mail.dll .NET в свой рейтинг. Он имеет поддержку SSL, Unicode и многонациональную поддержку электронной почты:
using(Pop3 pop3 = new Pop3())
{
pop3.Connect("mail.host.com"); // Connect to server
pop3.Login("user", "password"); // Login
foreach(string uid in pop3.GetAll())
{
IMail email = new MailBuilder()
.CreateFromEml(pop3.GetMessageByUID(uid));
Console.WriteLine(email.Subject);
}
pop3.Close(true);
}
также поддерживается протокол IMAP.
Обратите внимание, что это коммерческий продукт, который я создал.
Вы можете скачать его здесь: http://www.lesnikowski.com/mail