想知道这是否可行.假设电子邮件是用HTML编写的,用于电子邮件客户端呈现.并且HTML代码中存在锚标记,该标记将由电子邮件客户端解析.
可以从服务器外部引用资源(图像,文件等).例如,我可以下载PDF
是否可以引用随电子邮件一起发送的附件?因此,附上PDF并在电子邮件中引用一些标记,该附件是HTML代码的一部分.
我真的不想听到"替代"解决方案.我非常想听到是/否.
我编写了一个应用程序,它从收件箱中获取所有电子邮件,过滤包含特定字符串的电子邮件,然后将这些电子邮件放入ArrayList中.
将电子邮件放入列表后,我正在处理所述电子邮件的主题和内容.这适用于没有附件的电子邮件.但是当我开始使用带有附件的电子邮件时,它们都不能按预期工作了.
这是我的代码:
public void getInhoud(Message msg) throws IOException {
try {
cont = msg.getContent();
} catch (MessagingException ex) {
Logger.getLogger(ReadMailNew.class.getName()).log(Level.SEVERE, null, ex);
}
if (cont instanceof String) {
String body = (String) cont;
} else if (cont instanceof Multipart) {
try {
Multipart mp = (Multipart) msg.getContent();
int mp_count = mp.getCount();
for (int b = 0; b < 1; b++) {
dumpPart(mp.getBodyPart(b));
}
} catch (Exception ex) {
System.out.println("Exception arise at get Content");
ex.printStackTrace();
}
}
}
public void …Run Code Online (Sandbox Code Playgroud) 我一直在阅读博客并尝试了大量的实现,但仍未能将图像附加到我通过GMail使用java发送的电子邮件中.我下载了所有的罐子并添加了GMailSender.java,GMailAuthenticator.java和JSSEProvider.java,我能够定期发送常规电子邮件.我尝试过的方式如下所示,中间部分被注释为我希望添加图像的部分.下面是我尝试执行此操作时logcat上的输出.当然,我错过了一些非常简单的事情.有人能指出我吗?提前致谢.
public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {
try {
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
/*
// Create your new message part
BodyPart imgPart = new MimeBodyPart();
// Create a related multi-part to combine the parts
MimeMultipart multipart = new MimeMultipart("related");
multipart.addBodyPart(imgPart);
String fileName = "http://.../sampleBarcode.png";
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
if (classLoader == null) {
classLoader = this.getClass().getClassLoader();
if (classLoader == …Run Code Online (Sandbox Code Playgroud) 我知道这里提到的隐藏的iFrame技巧(http://stackoverflow.com/questions/365777/starting-file-download-with-javascript)和其他答案.
我对类似的问题很感兴趣:
我如何使用Javascript下载当前页面(IE:当前DOM或其中的一些子集)作为文件?
我有一个网页,它从非确定性查询中获取结果(例如随机样本)以显示给用户.我已经可以通过查询字符串参数使页面返回文件而不是呈现页面.我可以添加"获取文件版本"按钮(我们的标准方法),但结果将与显示的结果不同,因为它是查询的不同运行.
有没有办法通过Javascript下载当前页面作为文件,或复制到剪贴板我唯一的选择?
编辑 Stefan Kendall和dj_segfault建议的选项是编写结果服务器端以供以后检索.好主意,但遗憾的是在这种情况下写文件服务器端是不可能的.
如何不寒而栗传递innerHTML的参数后到另一个页面?
使用RavenDB存储文件数据的当前最佳实践是什么?(CDN或RavenDB附件)
我一直在关注Rob Ashton的优秀演示应用程序RavenDB Photo Gallery Project.在演示项目中,他将文件存储为RavenDB附件,但似乎提到这不是最佳实践.当前版本的RavenDB对此有何最新想法?
目前,我可以设置一个按钮来拍照,但我不确定如何在同一视图中将其作为电子邮件的附件传递.
该视图用于引用,并允许用户将数据输入到几个字段中,然后具有用于通过电子邮件发送所述数据的按钮.
我试图将上传的文件作为附件发送到我的ashx文件中.这是我正在使用的代码:
HttpPostedFile fileupload = context.Request.Files[0];
//filename w/o the path
string file = Path.GetFileName(fileupload.FileName);
MailMessage message = new MailMessage();
//*****useless stuff********
message.To.Add("abc@xxx.com");
message.Subject = "test";
message.From = new MailAddress("test@aaa.com");
message.IsBodyHtml = true;
message.Body = "testing";
//*****useless stuff********
//Fault line
message.Attachments.Add(new Attachment(file, MediaTypeNames.Application.Octet))
//Send mail
SmtpClient smtp = new System.Net.Mail.SmtpClient("xxxx", 25);
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("xxx", "xxxx");
smtp.Send(message);
Run Code Online (Sandbox Code Playgroud)
我可以发送没有附件的电子邮件.我是否需要先保存文件然后添加到附件中?
这与如何在电子邮件应用程序中使用我的应用程序打开附件有关?(哑剧类型,意图过滤器...),我以为我已经解决了,但事实并非如此.
我发现一些电子邮件客户端(例如,内置在电子邮件客户端中的Samsung Galaxy SII)不支持sendIntent.setType()方法,并且在向电子邮件添加附件时,它不添加setType方法中指定的mime类型.结果是当电子邮件到达时我无法打开附件.
因此,为了能够从任何电子邮件客户端打开附件,我认为他们唯一的方法是创建一个与我的自定义扩展相关联的新mime类型.
但我找不到任何方式来注册新的mime类型.我知道它可以像一些应用程序那样完成(ASTRO文件资源管理器),但我不知道在哪里可以查找有关添加新mime类型的信息.
编辑(2012年10月1日) ASTRO文件资源管理器仅为其进程添加mime类型.它们不能在其进程外读取,因此我没有任何可行的示例.
我一直在查看MimeTypeMap源代码,看起来它只使用一组预定义的mime类型,你不能添加一个新的.
我尝试使用反射(只是为了检查)并且能够添加mime类型,但它只对我的进程可见,就好像我的进程有自己的MimeTypeMap副本,因此电子邮件客户端仍然不会打开附件.
有人可以帮忙吗?
提前致谢
我正在编写一个拥有本地保存视频(.mov)的iOS应用程序.我正试图通过UIActivityViewController附加视频.它适用于电子邮件.视频已成功附加和发送.保存到相机胶卷时也可以使用.
附加到Messages时它不起作用.仅显示文本.Twitter和Facebook甚至都没有出现.当我删除视频附件时,Twitter和Facebook终于开始显示.我真的不太关心消息,但有人能告诉我Facebook和Twitter没有出现的原因吗?
继承我的代码:
- (IBAction) shareVideo {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *URL = [documentsDirectory stringByAppendingPathComponent:demoName];
NSString* someText = demoName;
NSURL *urlToShare = [NSURL fileURLWithPath:URL isDirectory:NO];
NSArray* dataToShare = @[someText, urlToShare];
UIActivityViewController* activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:dataToShare
applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact];
activityViewController.completionHandler = ^(NSString *activityType, BOOL completed) {
//if (completed) {
[self dismissViewControllerAnimated:YES completion:nil];
//}
};
[self presentViewController:activityViewController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud) 我想扩展类 ActiveStorage::Attachment 并添加一个枚举属性以查看附件。
我最初的方法是在 \app\models 目录中创建一个新文件attachment.rb,如下所示。
class ActiveStorage::Attachment < ActiveRecord::Base
enum visibility: [ :privately_visible, :publicly_visible]
end
Run Code Online (Sandbox Code Playgroud)
这不起作用。
欢迎任何建议。Rails 扩展类的方法是什么?
更新
我有一个现在部分有效的解决方案。为此,我创建了一个扩展 active_storage_attachment_extension.rb 并将其放置在 \lib
module ActiveStorageAttachmentExtension
extend ActiveSupport::Concern
included do
enum visibility: [ :privately_visible, :publicly_visible]
def describe_me
puts "I am part of the extension"
end
end
end
Run Code Online (Sandbox Code Playgroud)
扩展在 extensions.rb 中的初始化期间加载
ActiveStorage::Attachment.send(:include, ::ActiveStorageAttachmentExtension)
Run Code Online (Sandbox Code Playgroud)
不幸的是,它只是部分工作:虽然枚举方法public_visible?和privately_visible?在视图中可用,但在控制器中不可用。当调用控制器中的任何方法时,枚举似乎已经消失了。我收到“NoMethodError - 未定义方法”错误。令人惊讶的是,一旦枚举方法在控制器中被调用一次,它们在视图中也不再可用。我假设 ActiveStorage::Attachment 类会动态重新加载,并且扩展会丢失,因为它们仅在初始化期间添加。
有任何想法吗?
attachment ×10
email ×3
android ×2
file-upload ×2
iphone ×2
asp.net ×1
c# ×1
camera ×1
cdn ×1
cocoa-touch ×1
download ×1
gmail ×1
html ×1
ios ×1
jakarta-mail ×1
java ×1
javascript ×1
javax.mail ×1
mime-types ×1
multipart ×1
objective-c ×1
ravendb ×1
video ×1