Google App Engine:是否可以接收文件并通过电子邮件发送,而无需保存在Bolbstore中

时间:2014-05-26 20:01:40

标签: google-app-engine google-cloud-datastore sendmail email-attachments

  

我的应用程序的客户端将文件发送到servlet,我想得到   此文件并将其作为电子邮件附件发送而不保存。

     

请帮助我如何在Java中这样做。

3 个答案:

答案 0 :(得分:1)

请考虑以下方法:使用较短的生命周期将文件写入GCS(Google云端存储),以便在短时间内将其删除:GCS Lifecycle

<?xml version="1.0" ?>
    <LifecycleConfiguration>
        <Rule>
            <Action>
                <Delete/>
            </Action>
            <Condition>
                <Age>1</Age>
            </Condition>
        </Rule>
    </LifecycleConfiguration>

答案 1 :(得分:1)

获取您的文件,并执行:

String fileName;
byte[] fileContent;

MailService service = MailServiceFactory.getMailService();  
MailService.Message msg = new MailService.Message(); 

// msg.setSender(sender); 
// msg.setReplyTo(replyTo);
// msg.setTo(recepients); 
// msg.setSubject(subject);
// msg.setHtmlBody(message);

ArrayList<Attachment> attachments = new ArrayList<Attachment>();
Attachment attachment = new Attachment(fileName, fileContent);
attachments.add(attachment);

msg.setAttachments(attachments);
service.send(msg);

答案 2 :(得分:0)

使用Apache Commons FileUpload,您可以从Web客户端上传中获取文件而不保存。将文件作为附件Multi-Part Messages从byte []数组发送。