Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python语法不适用于电子邮件创建_Python_Python 2.7_Python 3.x - Fatal编程技术网

Python语法不适用于电子邮件创建

Python语法不适用于电子邮件创建,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我正在尝试为我的kolab电子邮件服务器编写一些基本python。对于主_邮件,我希望它是首字母和姓氏,例如jdoe。默认值为名字(点)姓氏。厕所。doe@domain.com givenname would be someone's full name. (i.e John) surname would be someone's last name. (i.e Doe) domain is the email domain. domain.com 我提出以下建议: primary_m

我正在尝试为我的kolab电子邮件服务器编写一些基本python。对于主_邮件,我希望它是首字母和姓氏,例如jdoe。默认值为名字(点)姓氏。厕所。doe@domain.com

givenname would be someone's full name. (i.e John)
surname would be someone's last name. (i.e Doe)
domain is the email domain. domain.com
我提出以下建议:

    primary_mail ='%(givenname)s'[0:1]%(surname)s@%(domain)s 
我想说的是jdoe@domain.com

givenname would be someone's full name. (i.e John)
surname would be someone's last name. (i.e Doe)
domain is the email domain. domain.com
当python对其进行规范化时,会出现一些混乱的情况,如:

    'john[0:1]'doe@domain.com
有人能帮我纠正一下吗?我是如此接近

编辑:

根据kolab文档,它看起来像:

"{0}@{1}": "format('%(uid)s', '%(domain)s')"
当然,这对我来说不起作用

编辑2:

我在错误日志中得到以下信息:

imaps[1916]: ptload completely failed: unable to canonify identifier: 'john'[0:1]doe@domain.com

到目前为止,字符串格式是实现这一点的最简单、最可读和首选方法:

first_name = 'John'
surname = 'Smith'
domain = 'company.com'
primary_mail = '{initial}{surname}@{domain}'.format(initial=first_name[0].lower(), surname=surname.lower(), domain=domain)
主邮件现在等于'jsmith@company.com'. 在大括号中定义一个包含命名占位符的字符串,然后调用format方法在运行时将这些占位符替换为适当的值。在这里,我们使用first_name的第一个字符并将其转换为小写,同时转换整个姓氏,并保持域不变


您可以在上阅读更多关于字符串格式的内容。

詹姆斯·斯科尔斯说得对,
格式
是一种更好的方法,但是阅读Kolab文档时,您似乎只能给出格式字符串,他们在内部使用
%
样式格式化程序,您无法更改它。从…起

在本例中,我们需要对格式对话进行修改。我们有
%(givenname)s
,它确保givenname是一个字符串。我们还可以指定最小长度,后跟
,然后是精度。这通常只用于数字,但我们也可以用于字符串。这是一个格式字符串,没有最小长度,但最大长度(精度)为1个字符:

"%(givenname).1s"
所以您可能需要这样的字符串:

"%(givenname).1s%(surname)@%(domain)"

不。。唯一可行的方法是,我将primary_mail='%(givenname)s'[0:1]%(姓氏)s@%(域)s放在kolab webadmin上。。。。它将正确地显示在字段中:但是如果我使用你的,它只会显示一个@符号。如果他们没有使用python自己的字符串格式,这将很难解决-尽管你刚才说你的问题中的示例确实有效,所以我可能错过了你需要做的事情?它正确地显示在web界面中,但我得到了:imaps[1916]:ptload完全失败:无法规范标识符:“john”[0:1]doe@domain.comI如果相同的格式字符串在web UI和他们的imap服务器中的使用方式不同,请向Kolab建议一份错误报告。我是这样做的:)我只是不知道我是否愚蠢。但是我原来的错误吗?我在哪里说的“我想出了以下方法”?不..唯一可行的方法是,如果我把primary_mail='%(givenname)s'[0:1]%(姓氏)s@%(域名)放在kolab webadmin上..它会正确地显示在字段中:但是如果我使用你的,它只会显示一个@符号。