我正在将Eclipse 3.6开发环境与Google Plugin for Eclipse一起使用。我创建了一个Web项目并将其配置为按照以下链接中的说明接收电子邮件。
我想测试收到附件的电子邮件。有一个电子邮件发送模拟器,如下所述。有没有人对此模拟器有更新,包括附加文件,以便我可以模拟接收带附件的电子邮件。
注意:我部署的应用会收到附件的电子邮件。我的目标是能够在测试环境中测试接收带附件的电子邮件。否则我无法单步执行代码。
http://code.google.com/appengine/docs/java/mail/receiving.html
“设置应用程序以处理传入的电子邮件后,您可以使用开发服务器控制台来模拟传入的电子邮件。您可以通过访问localhost:8888 / _ah / admin /(或者如果您的应用程序)访问开发服务器在8888以外的端口上运行,改为使用该值。在开发服务器中,单击左侧的入站邮件,填写出现的表单,然后单击发送电子邮件。“
答案 0 :(得分:1)
您无法使用Google App Engine开发服务器测试带附件的电子邮件 查看this功能请求。
答案 1 :(得分:1)
我已经创建了一个python脚本来模拟发送附件:
import os, sys
import requests
import urllib2
import urlparse
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import formatdate
from email import Encoders
def post_mail(url, send_from, send_to, subject, text, files=[]):
assert isinstance(files, list)
msg = MIMEMultipart()
msg['From'] = send_from
msg['To'] = send_to
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
msg.attach( MIMEText(text) )
for f in files:
part = MIMEBase('application', "octet-stream")
part.set_payload( open(f,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f))
msg.attach(part)
m = msg.as_string()
print send_to
u = urlparse.urljoin(url, "/_ah/mail/" + urllib2.quote(send_to))
print u
requests.post(u, data=m, headers={'content-type':'multipart/alternative'})
if __name__ == '__main__':
if len(sys.argv) < 6:
print >> sys.stderr, "Usage: test_mail.py urlbase fromaddr toaddr subject body file1 [..filen]"
print >> sys.stderr, 'E.g. test_mail.py http://localhost:8080 test@example.com something@appname.appspotmail.com "Sample Subject" "Sample Body" file1.csv file2.csv'
sys.exit(1)
url = sys.argv[1]
sender = sys.argv[2]
receiver = sys.argv[3]
subject = sys.argv[4]
body = sys.argv[5]
files = sys.argv[6:]
post_mail(url, sender, receiver, subject, body, files)
在app.yaml
路由处理程序中,在本地开发服务器中进行测试时,可能需要注释掉login: admin
的邮件路由。