regardless of philosophy (and I pushed on the side of simpler = better, not
buying that one time at registration is anything intolerably annoying to the
user)...
but the point is to work out what you want, see all the pertinent "what is"
questions, work them out, and then see what that leaves you
Hello web2py folks,
what is the preferred way to exchange parameters or variables between
views and controllers?
I have a page where a form gathers input and then a plot is generated
according to these inputs.
I am currently using the following setup:
## in VIEW
Input form
{{=form}}
Submitt
For example in Postgresql and MySQL , we Monetary Types:
http://www.postgresql.org/docs/8.4/static/datatype-money.html
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
I really believe that we should store monetary amount using the
monetary amount available in the database if available,
Back with an old query, in order to deal with an e-store, we would
need to deal with numeric, as we need to deal with prices which are
monetary amounts in multiple currencies.
I can not remember where we are with numeric implementation?
For example in SQLalchemy, numeric is defined as
class sql
No you are not. It is not obvious and not stated anywhere. Mainly
because we want to encourage people to use the most updated docs,
those online.
Massimo
On Jul 12, 12:47 am, "Mico Siahaan" wrote:
> Massimo, thanks. Silly me.
>
> Regards,
> Mico
> Powered by Telkomsel BlackBerry®
>
> -Origi
Massimo, thanks. Silly me.
Regards,
Mico
Powered by Telkomsel BlackBerry®
-Original Message-
From: mdipierro
Date: Sat, 11 Jul 2009 22:26:45
To: web2py Web Framework
Subject: [web2py:26318] Re: Epydocs web2py for offline viewing
You have it. It is distributed with web2py
http://127
Should be "SQLXorable is something that can be ORed"
Yes the choice of name for this class was unfortunate. This class is
not really exposed to the user. I am trying remove references to it
from the book. This class is going away in the new DAL.
Masssimo
On Jul 12, 12:17 am, rb wrote:
> Hi, re
pickle_SQLDB and unpickle_SQLDB are experimental functions. They are
not documented anywhere because they do not work. The documentation
says SQL*** objects are not pickable because they only work when there
is a database connection.
Massimo
On Jul 11, 6:32 pm, Kerem Eryılmaz wrote:
> Hi,
> Fir
Sorry, I did not state my question properly. What I mean is: did you
write it already? What is the status of your project?
On Jul 11, 10:48 pm, Lincoln_Consulting wrote:
> No a good helpdesk does not exist. Thousands of small businesses,
> startups, universities, NGOs will embrace it.
>
> I know
Joe,
I have to disagree again. We have a lot of developers, more than a
dozen. Here they are:
http://web2py.com/examples/default/who.html
and a log of the people who contributed are very skilled in web2py.
The wiki did not was very well but that is not a concern of mine. As
far as I am concern
You have it. It is distributed with web2py
http://127.0.0.1:8000/examples/static/epydoc/index.html
On Jul 11, 9:01 pm, "Mico Siahaan" wrote:
> Hi,
> Anyone have zipped file epydocs of web2py so it can be downloaded and viewed
> offline?
> Thanks,
> Mico
> Powered by Telkomsel BlackBerry®
--~--
We do not distribute mercurial with web2py. If you run web2py from
source and you have mercurial installed, web2py will use it. To
install it:
easy_install mercurial
Massimo
On Jul 11, 8:17 pm, 张峥 wrote:
> in the version 1.65.1, I can't find the Mercurial module,
> How can i use it
--~--~-
No it would completely change the web2py design to deal with only one
exception/function.
On Jul 11, 7:41 pm, Joe Barnhart wrote:
> Can't we have it both ways?
>
> Add the generation of exceptions in the web2py classes and provide a
> default exception handler in the boilerplate that redirects
This is not a bad idea but there some rules to follow.
request, response, session, cache, T are global objects in web2py so
if you import a function from a module, you have to pass those 5
objects to the function (not all of them, only those you need). You
probably want to pass your database conn
Hi, regarding the usage of "XORable" on page 145:
---begin include---
PAGE 145
SQLXorable is something that can be XORed, for example in orderby
and groupby expressions. The Field class is derived from SQLXorable.
Here is an example.
1. myorder=db.mytable.myfield.upper() | db.mytable.id
2.
Hi,
welcome.
What version of web2py are you using?
What code are you running that produces this error?
This can help us to help you correct your issues.
Hans
On 12 jul, 01:32, Kerem Eryılmaz wrote:
> Hi,
> First of all, thanks a lot for putting the effort for web2py. A huge,
> newbie fan.
>
>
Hi,
First of all, thanks a lot for putting the effort for web2py. A huge,
newbie fan.
To the point; I have a
Traceback (most recent call last):
File "/home/anakha/web2py/gluon/main.py", line 380, in wsgibase
File "/home/anakha/web2py/gluon/globals.py", line 383, in
_try_store_on_disk
File
It may be a little off topic, but actually on too...
have you looked into pywurfl.
http://wurfl.sourceforge.net/
This tool has been a great use for us with our mobile users.
It is also the reason I wanted to have rendering thumbnails on the fly.
So depending on the screen it sends an optimized ima
No a good helpdesk does not exist. Thousands of small businesses,
startups, universities, NGOs will embrace it.
I know zendesk, mojohelpdesk are doing good work, but vey expensive.
Web2Py + GAE helpdesk will rock!
Zendesk, Mojodesk can be studied for influence and business
requirements.
I am n
I diasagree too.
I need a web2py helpdesk.
If enough user community is attracted to web2py + GAE, I can get my
helpdesk built.
Also as an architect of the language Massimo, the focus should be;
1. Documentation
2. Attracting developers to web2py
3. After the founder scenario - Creating a com
Imho good docs is one factor for popularity of a framework. The other important
factor is it has been used to build 'killer apps'. Massimo, I read that web2py
has successfuly used to develop enterprise apps. Let's say they want to keep
the apps closed source, at least nice articles contain succe
Hi,
Anyone have zipped file epydocs of web2py so it can be downloaded and viewed
offline?
Thanks,
Mico
Powered by Telkomsel BlackBerry?0?3
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
in the version 1.65.1, I can't find the Mercurial module,
How can i use it
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To
Can't we have it both ways?
Add the generation of exceptions in the web2py classes and provide a
default exception handler in the boilerplate that redirects it to a
404 page?
My exceptions are a little rusty so maybe I'm thinking wrong.
-- Joe Barnhart
On Jul 11, 1:19 pm, mdipierro wrote:
>
OK Massimo --
I'm not going to beat my drum to death, but your new book is not what
I meant by documentation. We have AlterEgo, the book, the examples,
this forum, "web2pyslices", etc. etc. etc. Each occupies a tiny space
in the totality of documenting web2py. We decided a wiki could
subsume p
in fact I was trying it with args as that is usal way choosing a db
select set but could not
get it to work - (I thought maybe it was because of the way the
jpolite js modules work?)
so then I seen your code for passing vars to a controller using ajax
and tried that aproach.
Still on a long learn
I just gave a 12 seconds glance on it and found something that can be
updated:
On page 201:
CRYPT This is also a filter. It performs a secure hash on the input and
it is
used to prevent passwords from being passed in the clear to the
database.
1 requires=CRYPT(key=None)
If the key is None, it use
On Jul 11, 2009, at 2:43 PM, John Divon wrote:
>
> Hi All,
> Thanks for all the replies!
>
> The point is that I can estimate the time the page is loaded if I am
> using python time object at the controller, save it into the session
> and then, at the end of the page, diff it with another python
Hello-
I want to re-use some data access routines in a few different
controller files, so I would like to put them in a separate file in
the /modules directory, and then import that file into the controller
files that need them. However, I'm running into this error because I'm
trying to use some w
And for chapter 7:
- p174, halfway " can be done in the view or the action". I assume
action is defined earlier - Perhaps a quick reference.
- general, sometime you amke an update of a previous example. Please
make explicit in the code, eg by using comments, where the new/changed
stuff is. Makes
I like this very much. About your calendar project:
http://www.bytecyclist.com/SourceCode/jMonthCalendar/1.3.0-beta/Demo.html
massimo
On Jul 11, 4:48 pm, JohnMc wrote:
> Joe --
>
> I disagree as well. Even though I have said more than once docs are a
> weak point. But it is being addressed. Mi
Joe --
I disagree as well. Even though I have said more than once docs are a
weak point. But it is being addressed. Might I suggest, Massimo
released 3 chapters of the new book. Have you reviewed them and
possibly sent in corrections? Proof's in the pudding.
Yarko, rest --
Want something focuse
Hi All,
Thanks for all the replies!
The point is that I can estimate the time the page is loaded if I am
using python time object at the controller, save it into the session
and then, at the end of the page, diff it with another python time
object.
However, this solution estimates only the time
On Jul 11, 2009, at 1:29 PM, John Divon wrote:
> I have an application that serves mobile users as well.
> For the mobile users, I need to be able to find out if loading the
> page takes too much time.
> I know that the user uses his mobile to view the page since it is a
> specific page that has
On Jul 11, 2009, at 2:17 PM, mdipierro wrote:
>
> Send me a patch of what you are proposing. If it involves only a
> change in the register funciton than I am fine with it.
OK, I'll try to work one out.
>
> On Jul 11, 3:40 pm, Jonathan Lundell wrote:
>> On Jul 10, 2009, at 7:57 PM, Yarko Tymci
'smertphone' ?
On Sat, Jul 11, 2009 at 11:15 PM, mdipierro wrote:
>
>
> Try use this instead:
>
> http://web2py.com/examples/static/mobile_device_detect.py
>
> Massimo
>
> On Jul 11, 3:29 pm, John Divon wrote:
>> Hi all,
>>
>> I have an application that serves mobile users as well.
>> For the mo
Send me a patch of what you are proposing. If it involves only a
change in the register funciton than I am fine with it.
On Jul 11, 3:40 pm, Jonathan Lundell wrote:
> On Jul 10, 2009, at 7:57 PM, Yarko Tymciurak wrote:
>
>
>
>
>
> > On Fri, Jul 10, 2009 at 9:41 PM, Jonathan Lundell
> > wrote:
Try use this instead:
http://web2py.com/examples/static/mobile_device_detect.py
Massimo
On Jul 11, 3:29 pm, John Divon wrote:
> Hi all,
>
> I have an application that serves mobile users as well.
> For the mobile users, I need to be able to find out if loading the
> page takes too much time.
Agree with Massimo, that it is the best solution.
Still struggling with it though :;)
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegr
On Jul 10, 2009, at 7:57 PM, Yarko Tymciurak wrote:
>
> On Fri, Jul 10, 2009 at 9:41 PM, Jonathan Lundell
> wrote:
> On Jul 10, 2009, at 7:22 PM, Yarko Tymciurak wrote:
>
>> Hold on -
>>
>> getting away from the code / implementation for a second - what do
>> you want to happen from the perso
Hi all,
I have an application that serves mobile users as well.
For the mobile users, I need to be able to find out if loading the
page takes too much time.
I know that the user uses his mobile to view the page since it is a
specific page that has been pushed to his mobile.
How can I know the ti
On Jul 11, 2009, at 1:18 PM, gluegl wrote:
> Would someone point where the FONT/COLOR are changes for Web2Py Green
> Bar and Orange font Colors?
> Want to change the GREEN Bar to SHINY BLACK and the Orange to Bright
> SKYblue .
See styles.css
The bar is admin/static/title.png, repeated in x
http_host is the same as server name. It does not say is whether it is
http/https and what the port is. Plus web2py may be behind a proxy.
there is no reliable way to determine the url and any technique you
use can be spoofed by visitors.
it is must easier to declare it.
request/my_url='https://
The issue is the SQLFORM and crud examples in the books and everywhere
look like
def index():
return dict(form=crud.update(...))
and we do not want to change them all into
def index():
try:
form=crud.update(...)
except somenewexcetpion:
dosomething
return dict(fo
Would someone point where the FONT/COLOR are changes for Web2Py Green
Bar and Orange font Colors?
Want to change the GREEN Bar to SHINY BLACK and the Orange to Bright
SKYblue .
Thanks in advance,
-G
--~--~-~--~~~---~--~~
You received this message because you ar
Sorry about that. I did not check it.
On Jul 11, 12:28 pm, Jonathan Lundell wrote:
> On Jul 11, 2009, at 9:55 AM, mdipierro wrote:
>
>
>
> > look at
>
> > /examples/spreadsheet/index
>
> > in trunk. It should make sense.
>
> I'm sure that's true. Nonetheless, it'd be nice if the video could
>
Let's keep things focused. Everybody can do what he/she likes to do. I
need an eStore. I know of other people on this list who need an
eStore. The eStore must include a CMS. I just suggested we join
forces. Nothing is set other than the requirements of those who want
to join. I have mine but they
On Jul 10, 2009, at 6:13 PM, mdipierro wrote:
>
> No, web2py cannot determine it.
It's not HTTP_HOST?
>
> Massimo
>
> On Jul 10, 8:04 pm, Jonathan Lundell wrote:
>> Is there a standard way to get the current server name for the
>> verification string?
--~--~-~--~~~--
On Sat, Jul 11, 2009 at 2:11 PM, rb wrote:
>
> Isn't it true that the choice between using a return error code and
> using the exception mechanism is decided by whether the result is
> expected or not?
Well, "exceptional condition" means out of the ordinary - you have no
doubt used try/except
Isn't it true that the choice between using a return error code and
using the exception mechanism is decided by whether the result is
expected or not? If record_not_found is a common, reasonably expected
outcome then maybe it is better to use a return code to signal this so
that the logic to deal
well, there are 3 different things going on here I realize upon reflection:
data validation, connection / crud validation (basic "does the table
exist; can I modify a row - does the row exist?); access control
validation.
I think your point was well made about need for exceptions, but I also a
Right, but there are many situations, in which the validators don't
own a problem and its domain.
On Jul 11, 8:11 pm, Yarko Tymciurak wrote:
> exception is a failed validation - a failed case.
>
> You are talking about IMPLICIT (and not, by the way, necessary) case of
> IS_IN_DB()
>
> The genera
Reading through Ch 6:
- p143 - perhaps a note that the term SQL is genericly used (GAE does
not use SQL)
- p144 - bit confusing to still have SQLRows, ...Storage, ...Query,
...Set and ..Xorable; perhaps prefix them with DAL insetad of SQL
- p145 - the SQLXorable description is unclear. I still ca
I cannot tell from the example what this is supposed to do. If you use
':eval' ajax expects to recaive a string containing valid js code.
Your action is returning a serialized table.
On Jul 11, 12:53 pm, murray3 wrote:
> Massimo,
> I tried this on following:
>
> view m201 (in jpolite framework)
looking into crud / auth classes, and thinking about this a little, this
seems like it could use more discussion, thought...
For example, why does Crud have knowledge about auth, and redirecting to
auth? (coupling) Why isn't auth riasing access exceptions?
the lines between validators (data sha
Thanks, I just want to pass the value "other" to the contoller 'm204'
which will then use
logic to decide the db selection set and then render view m204.html
chrism
On Jul 11, 7:17 pm, mdipierro wrote:
> I cannot tell from the example what this is supposed to do. If you use
> ':eval' ajax expect
in fact I was trying it with args as that is usal way choosing a db
select set but could not
get it to work - (I thought maybe it was because of the way the
jpolite js modules work?)
so then I seen your code for passing vars to a controller using ajax
and tried that aproach.
Still on a long learn
Massimo,
I tried this on following:
view m201 (in jpolite framework)
Prodj Categories:
in controller
def m204():
value=request.vars.m204 prodj=db(db.prodj.genus==value).select
(db.prodj.id,db.prodj.name,db.prodj.timestamp,orderby=db.prodj.timesta
On Jul 11, 2009, at 9:55 AM, mdipierro wrote:
>
> look at
>
> /examples/spreadsheet/index
>
> in trunk. It should make sense.
I'm sure that's true. Nonetheless, it'd be nice if the video could
stand on its own.
I see that Vimeo supports HD (1280x720): http://www.vimeo.com/hd
>
> On Jul 11, 1
... I personally don't want to start w/ CMS or eStore.
I'm already uncomfortable with the immediate jump to solution; an immediate
"here's how you can do it!", without allowing for the necessary and normal
process of "what do we want this to do?" followed by "what are the ways
this can be done?".
for now I made it such SQLHTML raises HTTP(404,"Object Not Found")
still thinking about the best way.
On Jul 11, 11:06 am, Vidul wrote:
> Probably RecordNotFound exception or just an attribute like
> crud.setting.record_not_found?
>
> On Jul 11, 7:01 pm, mdipierro wrote:
>
> > You are right. w
exception is a failed validation - a failed case.
You are talking about IMPLICIT (and not, by the way, necessary) case of
IS_IN_DB()
The general case, it seems to me, is handling exceptions (errors) from
validations.
On Sat, Jul 11, 2009 at 11:54 AM, Vidul wrote:
>
> Sorry, Yarko,
>
> I canno
I disagree Joe.
The new book is coming out in less than one month. It will cover all
the new features. I have posted some of the chapters already.
Massimo
On Jul 11, 11:34 am, Joe Barnhart wrote:
> I think its a complete diversion of effort and a waste of time.
>
> The reason we don't have me
Sorry, Yarko,
I cannot understand what does a validator have to do with the
exception hangling?
On Jul 11, 7:40 pm, Yarko Tymciurak wrote:
> that's a fall back situation (if all else fails);
>
> ... how is this different from any general validator failing?
>
> since validators return (value, er
look at
/examples/spreadsheet/index
in trunk. It should make sense.
On Jul 11, 11:51 am, Jonathan Lundell wrote:
> On Jul 11, 2009, at 7:55 AM, mdipierro wrote:
>
> > Have you looked into:
>
> >http://www.vimeo.com/5432441
>
> > Wouldn't that be a better way to handle tabulated data with
> > d
H
The process of a sprint will show more clearly what kinds of things need to
be addressed in documentation.
I don't agree - I don't think this will be a diversion; I think it will be
enlightening (and possibly show up things
people from various aspects didn't expect).
On Sat, Jul 11, 2
On Jul 11, 2009, at 7:55 AM, mdipierro wrote:
> Have you looked into:
>
> http://www.vimeo.com/5432441
>
> Wouldn't that be a better way to handle tabulated data with
> dependencies?
> I was planning to post an example of how to use that.
The volume is rather faint. I could only understand it b
that's a fall back situation (if all else fails);
... how is this different from any general validator failing?
since validators return (value, error) - isn't this just IS_IN_DB() ???
GIven how this affects forms (dropboxes???) --- I'm not sure how you would
use that in this situation...
And ma
On 11 jul, 14:57, Massimo Di Pierro wrote:
> Chapters 7 and 8 have been revised including corrections from Mr
> Admin, Fran and Jonathan.
>
> web2py_manual_678.pdf
> 1982 KVerDescargar
Massimo
In the page 146:
The ports of mysql and postgre are equal.
In firebird already it is not necessa
I think its a complete diversion of effort and a waste of time.
The reason we don't have meaningful apps on web2py is because nobody
can figure out how to use it. The documentation SUCKS. Hello??!?
Haven't we had this discussion endless times already?
We are the same group who couldn't create
does it exist already?
On Jul 11, 11:07 am, jukl wrote:
> Web2py Helpdesk in GAE
>
> Any business needs customers.
>
> And customers need support.
>
> So helpdesk ("of enterprise standards") will be a huge hit.
>
> It should be scalable, available and be reasonably priced.
--~--~-~--~---
Web2py Helpdesk in GAE
Any business needs customers.
And customers need support.
So helpdesk ("of enterprise standards") will be a huge hit.
It should be scalable, available and be reasonably priced.
--~--~-~--~~~---~--~~
You received this message because yo
I expected to see the HTML form, but all I see is "form : ACCESS
DENIED", i.e. a redirection to not_authorized method.
I guess something's wrong in my code...
On Jul 11, 7:06 pm, mdipierro wrote:
> Can you explain what does not work exactly?
>
> Massimo
>
> On Jul 11, 10:55 am, Vidul wrote:
>
>
Probably RecordNotFound exception or just an attribute like
crud.setting.record_not_found?
On Jul 11, 7:01 pm, mdipierro wrote:
> You are right. we need to deal with that exception somehow. What do
> you propose?
>
> massimo
>
> On Jul 11, 10:13 am, Vidul wrote:
>
>
>
> > For example:
>
> > de
Can you explain what does not work exactly?
Massimo
On Jul 11, 10:55 am, Vidul wrote:
> Thank you!
>
> A note - the following example do not work as expected (not_authorized
> action called):
> # in the controller:
> def give_asset_create_permission(form):
> group_id=auth.id_group('user_%s'
You are right. we need to deal with that exception somehow. What do
you propose?
massimo
On Jul 11, 10:13 am, Vidul wrote:
> For example:
>
> def update_comment():
> form=crud.update(db.comment, request.args(0))
> retur dict(form=form)
>
> where args(0) does not exist in the database.
>
Thank you!
A note - the following example do not work as expected (not_authorized
action called):
# in the controller:
def give_asset_create_permission(form):
group_id=auth.id_group('user_%s' % auth.user.id)
auth.add_permission('read',db.asset,0,group_id)
auth.add_permission('create',
Something like this to start with:
db.define_table('category',
Field('name'))
db.define_table('product',
Field('name'),
Field('dategory',db.category),
Field('description','text',represent=lambda value: WIKI(value)),
Field('price','double',default=10.00),
Field('quantity_in_stock'
For example:
def update_comment():
form=crud.update(db.comment, request.args(0))
retur dict(form=form)
where args(0) does not exist in the database.
On Jul 11, 5:51 pm, mdipierro wrote:
> What kind of exceptions?
>
> On Jul 11, 7:04 am, Vidul wrote:
>
>
>
> > Hi,
>
> > Auth and CRUD
Have you looked into:
http://www.vimeo.com/5432441
Wouldn't that be a better way to handle tabulated data with
dependencies?
I was planning to post an example of how to use that.
Massimo
On Jul 11, 7:29 am, "Francois (Jersey)"
wrote:
> Reviewed chapter 7 Forms and validators.
>
> The chapter
What kind of exceptions?
On Jul 11, 7:04 am, Vidul wrote:
> Hi,
>
> Auth and CRUD are amazing, no doubt, but is there a best practice for
> the exception handler / ing of read / create / update / delete
> actions?
>
> Thank you!
--~--~-~--~~~---~--~~
You received
Very useful! I need this myself. Thanks
Massimo
On Jul 11, 5:42 am, Tim Michelsen wrote:
> mdipierro:
>
> > You can do it like in django:
>
> > from PIL import Image
> > def image():
> > image = Image.new("RGB", (800, 600))
> > response.headers['Content-Type']="image/png"
> > ima
You can modify your own copy in the application that needs it. There
is no need to modify the default web2py_ajax.html.
On Jul 10, 10:48 pm, 张峥 wrote:
> in the version 1.64.3, I rivise the function:
>
> function ajax(u,s,t) {
> var query="";
> for(i=0; i if(i>0) query=query+"&";
> query=query+en
Reviewed chapter 7 Forms and validators.
The chapter deals with multiple forms per page, however a more complex
example would be useful.
Let me explain the limitation of the current presentation. The example
presented page 178 has a validation button for each form, but it is
not possible to vali
Reviewed chapter 7 Forms and validators.
The chapter deals with multiple forms per page, however a more complex
example would be useful.
Let me explain the limitation of the current presentation. The example
presented page 178 has a validation button for each form, but it is
not possible to vali
Hi,
Auth and CRUD are amazing, no doubt, but is there a best practice for
the exception handler / ing of read / create / update / delete
actions?
Thank you!
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
"web2py We
@Massimo
I also need a example, matplotlib in the web2py, thanks
Tim Michelsen 写道:
> mdipierro:
>
>> You can do it like in django:
>>
>> from PIL import Image
>> def image():
>> image = Image.new("RGB", (800, 600))
>> response.headers['Content-Type']="image/png"
>> image.sav
mdipierro:
> You can do it like in django:
>
> from PIL import Image
> def image():
> image = Image.new("RGB", (800, 600))
> response.headers['Content-Type']="image/png"
> image.save(response.body, "PNG")
> return response.body.getvalue()
>
> response.body is a StringIO
Here i
yes, I've already tryed this way, after looking at tools.py
maybe I'm doing something wrong, I'm going to recheck...
thanks
On 11 Lug, 00:46, mdipierro wrote:
> import smtplib
> server = smtplib.SMTP(host, port)
> server.ehlo()
> server.starttls()
> server.ehlo()
> server.login(username, passwo
89 matches
Mail list logo