[Gambas-user] Receiving an email

Randall Morgan rmorgan62 at ...626...
Tue Jul 23 03:16:42 CEST 2013


Open your project in Gambas and got to the project menu. Select
'components' and then scroll through the list to locate gd.net.pop3. Check
the box. Then close.




On Mon, Jul 22, 2013 at 2:58 PM, Rolf-Werner Eilert <
eilert-sprachen at ...221...> wrote:

> Just wanted to try, but I don't find gb.net.pop3 - where is it? Is it
> something quite new? My version here is 3.3.4.
>
> I tried to activate the gb.net, gb.net.curl and gb.net.smtp components,
> but it still doesn't know about Pop3Client. What am I doing wrong?
>
> Rolf
>
>
> Am 16.07.2013 00:37, schrieb Randall Morgan:
> > Here's a really quick and dirty sample of using the gd.net.pop3 mail
> client
> > using the command line project type:
> >
> > ' Gambas module file
> >
> > Public Sub Main()
> >   Dim hConn As New Pop3Client
> >   Dim sMailIds As String[]
> >   Dim sMailId As String
> >   Dim Stats As Integer[]
> >   Dim iCount As Integer
> >   Dim iSize As Integer
> >   Dim sMessage As String
> >
> >
> >   'Set mail server connection parameters
> >   With hConn
> >     .Host =  '"<your mail server host name>"
> >     .Port = 110 '<your mail server port 110 is common for non ssl. 995
> for
> > ssl. >
> >     .User = '"<your mail account username>"
> >     .Password = '"<your mail account password>" 'May want to store in,
> and
> > retrieve this from an encrypted file
> >   End With
> >
> >   Try hConn.Open
> >
> >   If Error Then
> >     Print "Mail Error: "; Error.Text; "\nat "; Error.Where 'May want to
> log
> > this....
> >   Else
> >     If hConn.Status = -16 Then
> >       Print "Cannot Authenticate Mail Account."
> >       Stop
> >     Else If hConn.Status = 7 Then
> >       Print "Connected to mail server...."
> >       Print hConn.Welcome
> >     Endif
> >   Endif
> >
> >
> > Stats = hConn.Stat()
> >
> > Print "There are "; Stats[0]; " Messages in your inbox."
> > Print "You inbox contains "; Stats[1]; " bytes of data."
> >
> >   ' Show all mail ids
> >   sMailIds = hConn.List()
> >
> >   For Each sMailId In sMailIds
> >     Print sMailId
> >   Next
> >
> >   ' Get each mail and display
> >   For Each sMailId In sMailIds
> >     sMessage = hConn.Exec("RETR " & sMailId)
> >     Print "Message: "; sMailId; "\n"
> >     Print "----------------------------------------------------"
> >     Print sMessage; "\n\n"
> >   Next
> >
> >   Print "Closing Connection."
> >   hConn.Close
> >
> > End
> >
> >
> >
> > You may also find these links helpful:
> >
> >
> http://www.arclab.com/products/amlc/list-of-smtp-and-pop3-servers-mailserver-list.html
> >
> > http://www.electrictoolbox.com/article/networking/pop3-commands/
> >
> >
> > On Mon, Jul 15, 2013 at 2:12 PM, Tobias Boege <taboege at ...626...> wrote:
> >
> >> On Mon, 15 Jul 2013, Rolf-Werner Eilert wrote:
> >>> Thanks for your advice, Randall.
> >>>
> >>> Am 15.07.2013 17:16, schrieb Randall Morgan:
> >>>> Is your email pop3, IMAP, MAPI, or webmail? The way you approach this
> >>>> depends on the target system.
> >>>
> >>> It is pop3 and it is my own vserver for my firm's website.
> >>>
> >>>>
> >>>> IMHO pop3 would be the easiest. There you would only need to access
> >> your
> >>>> mail account to download the emails for processing. Gambas has PDF
> >>>
> >>> Yes, that would be the precise question. My idea was to use the contact
> >>> form plugin from the website, making another contact form which sends
> >>> the results to another email address (e. g. application at ...1107... instead of
> >>> info at ...1107...) and read the emails from that address.
> >>>
> >>> So it all boils down to: how can I read the emails - say once a minute
> -
> >>> and place them somewhere where a script of mine - say Gambas - has
> >>> access and reads them. And how to read them.
> >>>
> >>> I thought of leaving everything on the remote server, but it might as
> >>> well be read from our local server in my firm and processed there. The
> >>> latter might be the better way, as it is done so for the ordinary
> >>> contact forms now (they are waiting for my email client to fetch them
> >>> from the remote server via pop3, so I can fetch them even now when I'm
> >>> in holidays, with my laptop). I'd just need a script to do with the
> >>> other ones in regular intervals.
> >>>
> >>>> generation capabilities so that is not an issue. Another way to handle
> >> this
> >>>> would be to setup a GAMABS SMTP service and have the emails forwarded
> >> to
> >>>> that service. Then the app could be written to process any email that
> >>>> arrived in the inbox.
> >>>
> >>> Yes, I saw there's an smtp library for Gambas, but I thought it might
> be
> >>> easier the other way round.
> >>>
> >>>>
> >>>> As for an easy way.... Well, easy is a qualitative term and so the
> >> ease of
> >>>> development would depend on the programmer's experience and abilities.
> >> If
> >>>> you're using webmail and the front end is something like Squirrel
> Mail,
> >>>> then you have a nice table arrangement that can be easily parsed with
> >>>> GAMBAS. But if your mail account is something like Yahoo or Google I
> >> think
> >>>> a web parsing framework such as those used with Java or Python would
> >> ease
> >>>> development.
> >>>
> >>> Neither nor, there's qmail on the server. That's it.
> >>>
> >>>>
> >>>> A lot of my data collection tasks involve writing code in different
> >>>> languages.
> >>>
> >>> I wouldn't mind calling some other script from the Gambas one or
> >> vice-versa.
> >>>
> >>>
> >>>> For example, One of my apps is a simple bash script that takes
> >>>> forms submitted as pdfs, and processes them using python and then
> >> stores
> >>>> the results in a MySQL DB which has some stored procedures for final
> >>>> processing. Then a cron script runs one every 5 minutes to get any new
> >> rows
> >>>> from the DB and place them in a queue to be reviewed by staff. The
> >> staff
> >>>> app then calls a php script that connects to a asterisk system if the
> >> staff
> >>>> needs to contact the client, and dials the clients number. Sadly, the
> >> staff
> >>>> review portion was not written in Gambas but in C++/Qt.
> >>>
> >>> Sounds rather clever, but I hope my idea won't become so extensive :-)
> >>>
> >>>>
> >>>> Don't get bogged down into thinking that if you use GAMBAS for a
> >> portion of
> >>>> the app that you must use it for the whole app. You can create
> powerful
> >>>> systems by combining the resources found other tools. Gambas and most
> >> Linux
> >>>> software is designed to allow this kind of inter-connect via pipes,
> >>>> sockets, and files. So pick the tools that make each part of the
> >> process
> >>>> easiest and you development will be simplified.
> >>>
> >>> Yes, that was the base of my idea. I started inventing a whole-in-one
> >>> app with Gambas: contact form, control, pdf, everything. Then I thought
> >>> there is a nice contact form plugin already, so why inventing the
> wheel?
> >>>
> >>> Ok, let's get back to the point: reading an email (pop3 from the remote
> >>> server to the local one) and placing it somewhere to let a Gambas app
> >>> process it, how should I start? Where can I find the emails? Isn't
> there
> >>> a mail command I can use from a bash script? After all, there are
> >>> scripts on every system that send mails to root. And where are these
> >>> mails stored then? When I know where, I can examine the files and find
> a
> >>> way to process them in Gambas.
> >>>
> >>
> >> So we have two options, right?
> >>
> >> a) Run a Gambas CGI script on the webserver which receives the user
> input
> >>     via HTTP (GET/POST) from the HTML form.
> >> b) Have a Gambas daemon on your local computer which checks regularly
> for
> >>     new mails dropped by an external program. Or even better: Have a
> Gambas
> >>     program which is fed with incoming mail whenever it arrives.
> >>
> >> It seems that a) is not the topic here. So, for b) you need a mail
> daemon.
> >> I
> >> personally use fetchmail for all my mail (IMAP). It also understands
> POP3,
> >> according to the manpages. And the best thing is: it has the "-m" switch
> >> which lets you give it a program (Mail Delivery Agent) to which it will
> >> pipe
> >> its mail. The MDA shall sort/distribute mail correctly but you can
> >> equivalently well use it to call any program with every incoming mail
> being
> >> piped to it. You can then examine the mail and do whatever you want.
> >>
> >> I use fetchmail for around 3 years now and the system didn't fail once
> - or
> >> it was so unimportant that I didn't notice. The only issue you have is
> to
> >> install and configure fetchmail correctly.
> >>
> >> I just tested fetchmail's -m option with a self-written program and it
> >> works
> >> as expected.
> >>
> >> Regards,
> >> Tobi
> >>
> >>
> >>
> ------------------------------------------------------------------------------
> >> See everything from the browser to the database with AppDynamics
> >> Get end-to-end visibility with application monitoring from AppDynamics
> >> Isolate bottlenecks and diagnose root cause in seconds.
> >> Start your free trial of AppDynamics Pro today!
> >>
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
> >> _______________________________________________
> >> Gambas-user mailing list
> >> Gambas-user at lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/gambas-user
> >>
> >
> >
> >
>
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>



-- 
If you ask me if it can be done. The answer is YES, it can always be done.
The correct questions however are... What will it cost, and how long will
it take?



More information about the User mailing list