Java调用python脚本

Tommy_Qin 发布于 2012/06/11 20:54
阅读 9K+
收藏 2

我用python写了一个发送邮件的函数,有木有知道怎么用java调用此函数的,并且要用java来吧参数传递给python的函数。。。邮件接收人,抄送者,邮件内容均由java提供给python,小弟在这里谢谢大家了

代码如下:

from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText

# python 2.3.*: email.Utils email.Encoders
from email.utils import COMMASPACE,formatdate
from email import encoders

import os

#server['name'], server['user'], server['passwd']
def send_mail(server, fro, to, subject, text, files=[]): 
    assert type(server) == dict 
    assert type(to) == list 
    assert type(files) == list 

    msg = MIMEMultipart() 
    msg['From'] = fro 
    msg['Subject'] = subject 
    msg['To'] = COMMASPACE.join(to) #COMMASPACE==', ' 
    msg['Date'] = formatdate(localtime=True) 
    msg.attach(MIMEText(text)) 

    for file in files: 
        part = MIMEBase('application', 'octet-stream') #'octet-stream': binary data 
        part.set_payload(open(file, 'rb'.read())) 
        encoders.encode_base64(part) 
        part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file)) 
        msg.attach(part) 

    import smtplib 
    smtp = smtplib.SMTP(server['name']) 
    smtp.login(server['user'], server['passwd']) 
    smtp.sendmail(fro, to, msg.as_string()) 
    smtp.close()

加载中
0
鉴客
鉴客
Jython 就可以直接运行 Python 代码
Tommy_Qin
Tommy_Qin
怎么调用呢?求代码
0
大东Daniel
大东Daniel
看你使用python自己的编译器还是自己写编译器了,最直接的就是可以java使用shell命令执行python吧。方法很多。 参数传递可以读取py文件,替换掉那个参数再写进去可不可以?
0
ValueError
ValueError

Jython 什么的可以忽略了,都多久没更新了。

跨语言通讯一般都用 IPC 的吧,但是就发个邮件这么简单的事情至于要跨语言实现么,就用 Java 写个不就好咯。

0
firefoxmmx
firefoxmmx

其实可以使用jython 解析器, 他映射在java系统里面是一个叫PythonInterpreter  的类,可以用输入输出读取你写的PY文件把内容给解析器。传递参数就是put(xx,yy)比较方便。
参考这个 http://www.ibm.com/developerworks/cn/java/j-lo-jythonconfig/

0
天界王者
天界王者
JAVA不能发送邮件了?
0
反经
反经
看下javax.script包,里面有你想要的
返回顶部
顶部