PLESK XML API:如何在不删除邮件别名的情况下更改邮件帐户信息
PLESK XML API: How to change mail account infos without deleting mail-aliases
我试图在 plesk 12.5 中 change/update 没有 changing/removing(?) 其他邮件帐户设置的邮件帐户信息。
在这种特殊情况下,我想更改帐户的密码而不删除它的别名[es](或任何其他附加到此邮件帐户的信息...)。
首先,我试过:
</p>
<pre><code>$request = <<<EOF
<packet>
<mail>
<update>
<set>
<filter>
<site-id>SOME ID</site-id>
<mailname>
<name>SOME NAME</name>
<password>
<value>SOME VALUE</value>
<type>NEW PASSWORD</type>
</password>
<description><![CDATA[SOME DESCRIPTION]]></description>
</mailname>
</filter>
</set>
</update>
</mail>
</packet>
EOF;
当我执行此操作时,一切正常但是:所有邮件别名都消失了! :-( 到目前为止我真正不明白的是:"why"??我根本不碰别名...
所以我想到的第二种方法是先 'getting' 别名,用上面的代码更改密码并再次粘贴 "old" 别名。
但是当我尝试使用以下方法获取别名时:
</p>
<pre><code>$request = <<<EOF
<packet>
<mail>
<get_info>
<filter>
<site-id>SOME ID</site-id>
<name>SOME NAME</name>
</filter>
!!<aliases/>!!
</get_info>
</mail>
</packet>
EOF;
$response = $client->request($request);
var_dump($response);
OUTPUT: string(int) "ok id name mailalias1 mailalias2 xxx off description"(我手动添加了两个别名是正确的)
现在我有两个问题:
1.) best/correct 哪条路可以变成 "my wishes happen"? ;-)
2.) 我如何从 PLESK 的响应中获取单个信息(即:仅从我作为 "OUTPUT" 发布的字符串中获取别名)
我用的参考:http://docs.plesk.com/en-US/12.5/api-rpc/reference/managing-mail/
提前致谢! :)
迈克尔
PS:抱歉我的 "unpolished" 英语...太久了!
也许我不明白你的意思,但这是你可以从 API 回复中获取别名的方法:
$xml = new SimpleXMLElement($output);
$result = $xml->xpath('//alias');
while(list( , $node) = each($result)) {
echo $node . "\n";
}
我试图在 plesk 12.5 中 change/update 没有 changing/removing(?) 其他邮件帐户设置的邮件帐户信息。 在这种特殊情况下,我想更改帐户的密码而不删除它的别名[es](或任何其他附加到此邮件帐户的信息...)。
首先,我试过:
</p>
<pre><code>$request = <<<EOF
<packet>
<mail>
<update>
<set>
<filter>
<site-id>SOME ID</site-id>
<mailname>
<name>SOME NAME</name>
<password>
<value>SOME VALUE</value>
<type>NEW PASSWORD</type>
</password>
<description><![CDATA[SOME DESCRIPTION]]></description>
</mailname>
</filter>
</set>
</update>
</mail>
</packet>
EOF;
当我执行此操作时,一切正常但是:所有邮件别名都消失了! :-( 到目前为止我真正不明白的是:"why"??我根本不碰别名...
所以我想到的第二种方法是先 'getting' 别名,用上面的代码更改密码并再次粘贴 "old" 别名。 但是当我尝试使用以下方法获取别名时:
</p>
<pre><code>$request = <<<EOF
<packet>
<mail>
<get_info>
<filter>
<site-id>SOME ID</site-id>
<name>SOME NAME</name>
</filter>
!!<aliases/>!!
</get_info>
</mail>
</packet>
EOF;
$response = $client->request($request);
var_dump($response);
OUTPUT: string(int) "ok id name mailalias1 mailalias2 xxx off description"(我手动添加了两个别名是正确的)
现在我有两个问题:
1.) best/correct 哪条路可以变成 "my wishes happen"? ;-)
2.) 我如何从 PLESK 的响应中获取单个信息(即:仅从我作为 "OUTPUT" 发布的字符串中获取别名)
我用的参考:http://docs.plesk.com/en-US/12.5/api-rpc/reference/managing-mail/
提前致谢! :) 迈克尔
PS:抱歉我的 "unpolished" 英语...太久了!
也许我不明白你的意思,但这是你可以从 API 回复中获取别名的方法:
$xml = new SimpleXMLElement($output);
$result = $xml->xpath('//alias');
while(list( , $node) = each($result)) {
echo $node . "\n";
}