Solved

can't delete mails using Winsock.SendData "DELE x"

Posted on 2004-04-01
8
743 Views
Last Modified: 2013-12-25
hi experts,

i am using the Winsock control to grab mails from a mailbox.
i do the usual checking of the DataArrival event of the control, call the GetData method to retrieve messages from the mail server and i always get my email as a stream of encoded asciis, no problem.

so i get my emails, store them for future processing, and delete them from mailbox, repeat the procedure, and it works perfect. of course, i use the SendData method to do the deletion [Winsock.SendData "DELE x"].

everything's been fine until recently.

i had a scenario where for some reason i got a number "blank" mails on my mail server. by blank i mean, there was no sender, subject, body, etc indicated on the emails. i don't know how those "blank" mails got to the server in the first place. this might have been caused by the virus scanner but i am not too sure.

anyway, my program read the other legitimate mails from the server together with those blank ones and processed them, but was not able to delete any email successfully. it ended up reading the same set emails over and over again and needless to say, i had disastrous results.

questions: when using the winsock control, is there any email ID that i can use to tell that a particular email has already been looked at [and was just retrieved again because it was not deleted]. also, does Winsock.SendData "DELE x" return any error when it is not able to delete mails? i am using VB and i have an "On Error GoTo Label" statement on my code. it was not able to do the deletion but it just kept on going and retrieving the same set of emails and didn't return an error for 12 hours until i stopped it.

thanks in advance,

flor
0
Comment
Question by:papaflo
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 85

Expert Comment

by:Mike Tomlinson
ID: 10735684
The Winsock control is a generic control for sending and receiving data, and as such, it has no knowledge of what you are doing with it (sending files, getting mail, playing a game, etc.).  Any error codes would have to be sent to you via the DataArrival event and this would be a function of your mail server.

For someone to help you with this problem they would need to know what kind of mail server you are accessing.

Idle_Mind
0
 

Author Comment

by:papaflo
ID: 10735777
thanks for the input, Idle_Mind
would you be one of those someone who, if they know what kind of mail server i am accessing, they would be able to help me out?
i am using IMail by the way
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
ID: 10735833
I have lots of experience with the Winsock control through various FTP, File Transfer, and Chat applications but unfortunately have never used it to get mail from a server.

Sorry.

Idle_Mind
0
 

Author Comment

by:papaflo
ID: 10736829
that allright, Idle_Mind
if you know of anybody who's got answers, please ask them to help out
thanks anyhow
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 5

Expert Comment

by:crazycomputers
ID: 10737424
How are you logging out?  Using WinSock.Close will not work.  According to the SMTP protocol RFC, terminating the connection does not purge any messages marked deleted.  You need to do

WinSock.SendData "QUIT" & vbCrLf

to delete the messages.

(I'm not sure which method you're using, but I've had this problem too, and this is how I fixed it.)
0
 
LVL 2

Assisted Solution

by:jasonholland
jasonholland earned 60 total points
ID: 10737430
Well, you said you are using Imail so I went to IPSwitch's website and looked up IMail server error codes

http://support.ipswitch.com/kb/IM-20000419-DM01.htm

Take a look at the error codes, and put some traps in your DataArrival event for these error codes being returned as data.

Jason Holland
0
 

Author Comment

by:papaflo
ID: 10742454
thanks for the input, guys

crazycomputers:
i do use
WinSock.SendData "QUIT" & vbCrLf
and i am able to delete messages in the normal case as i've mentioned above
i only run into problems when i had those "blank" messages [please see my initial post above]

jasonholland:
i do have error handlers on my code, but as mentioned, when the "blank"messages occurred, my program did not delete messages but NO ERROR WAS RAISED [please see my initial post above]
i also have code on the  Winsock_Error event by the way, and that portion of the program was not reach as well

any of you guys know anything about a unique email ID? [please see my initial post above]
0
 
LVL 5

Accepted Solution

by:
crazycomputers earned 65 total points
ID: 10743451
I do not believe that SMTP provides a unique mail ID beyond the message numbers.  It looks like this is a server problem.  Try contacting the server administrator and see if he can't explain what's going on.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now