0

我目前有一些 JavaScript 代码调用 .php 文件,使用点击功能从 .jsp 中向我发送电子邮件。它还包括几个变量,见下文。

<script>
function sendMail(video, user) {
var xmlhttp;
     if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
     } else {// IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     }
     xmlhttp.open("GET", "http://www.mydomain.com/sendemail.php?video="+video+"&user="+user+'&ip=<%= request.getHeader("X-Real-IP") %>', false);
     xmlhttp.send();
}
</script>

在 .jsp 文件中调用脚本:

            <a href="${videoUrl}" target="main" onclick="sendMail(parentElement.parentElement.getElementsByTagName('span')[2].attributes['title'].value, '${model.user.username}')">

现在我有一个 .py(与上面不同的应用程序)文件,我想调用这个 sendMail 函数。我想在 .py 文件中调用 sendMail 函数的部分

def play(self, song_id):
    Addon.log('play: ' + song_id)
    if Addon.get_setting('transcode') == 'true':
        bitrate = self.bitrates[int(Addon.get_setting('bitrate'))]
        Addon.resolve_url(self.build_rest_url('stream.view', 
                                              {'id': song_id,
                                               'maxBitRate': bitrate}))
    else:
        Addon.resolve_url(self.build_rest_url('download.view', 
                                              {'id': song_id}))

现在有没有办法从 python 文件中完成这个 sendMail 函数?我可以调用 URL 而不是使用该函数?

我弗兰肯斯坦我正在运行一个 web 应用程序来向我发送电子邮件通知,我发现最简单的方法是创建 JavaScript 函数,然后调用一些 PHP 来发送电子邮件。现在 python 是一个完全不同的应用程序,只是想弄清楚如何做同样的事情,调用 URL 发送电子邮件,但使用 Python。

4

2 回答 2

0

直接从 Python 代码调用 PHP 代码并不简单,但如果我正确理解您的情况,您真正想做的就是向服务器发送 HTTP 请求,对吧?碰巧您发送 HTTP 请求的服务器正在运行 PHP 应用程序,但这与您的 Python 代码完全无关?

只是import urllib2。将 URL 构造为字符串(以与 Javascript 的执行方式类似的方式,或者使用字典和具有更高级的功能urllib2.urlencode())。然后urllib2.urlopen(url)

于 2012-11-14T22:03:25.360 回答
0

要调用 url,请尝试urllib2模块,例如:

>>> import urllib2
>>> f = urllib2.urlopen('http://www.python.org/')
>>> print f.read(100)

要发送电子邮件,请尝试从这些示例中的任何一个开始的电子邮件模块

要在同一台机器上启动外部进程(例如 php 脚本),请尝试SubProcess模块

于 2012-11-14T22:07:25.227 回答