按照此相关问题中提供的说明,我能够发送html格式的邮件消息.现在的问题是:我应该如何修改以下代码,以便将一个或多个文件(任何类型)附加到此消息中?
library(sendmailR)
from <- "<sendmailR@myserver.mycompany.com>"
to <- c("<someone@mycompany.com>","<anotherone@mycompany.com>")
subject <- iconv("Message Title", to = "utf8")
msg <- "<hr size='2' width='33%' style='text-align: left;'><font size='2'>
<i>This email was sent automatically using <a href='http://finzi.psych.upenn.edu/R/library/sendmailR/html/00Index.html' rel='nofollow' target='_blank'>sendmailR</a>.<br>
Please do not reply directly to this e-mail.</i></font>"
msg <- iconv(msg, to = "utf8")
sapply(to,function(x) sendmail(from, x, subject, msg, control=list(smtpServer="###.###.###.###"), headers=list("Content-Type"="text/html; charset=UTF-8; format=flowed")))
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用UIActivityItemProvider通过电子邮件附件从我的应用程序内共享文件.我还需要填充电子邮件的主题行,并指定附件的名称与设备上存储的文件名称不同.
这是我正在使用的代码.问题是电子邮件中缺少附件.
@interface ItemProvider:UIActivityItemProvider
@property (nonatomic, strong) NSURL *filepath;
@property (nonatomic, strong) NSString *emailBody;
@property (nonatomic, strong) NSString *emailSubject;
@end
@implementation ItemProvider
- (id)initWithPlaceholderItem:(id)placeholderItem
{
//Initializes and returns a provider object with the specified placeholder data
return [super initWithPlaceholderItem:placeholderItem];
}
- (id)item
{
//Generates and returns the actual data object
return [NSDictionary dictionary];
}
// The following are two methods in the UIActivityItemSource Protocol
// (UIActivityItemProvider conforms to this protocol) - both methods required
#pragma mark UIActivityItemSource
//- Returns the …
Run Code Online (Sandbox Code Playgroud) 我想附上作为电子邮件附件创建的pdf.我使用以下教程在iOS设备上创建pdf.
可以在以下路径查看下载的pdf:/ Users /"Username"/ Library/Application Support/iPhone Simulator /"Your App Directory".
我没有尝试在ios设备上运行它,但我需要将其作为电子邮件附加.
教程链接是:http: //www.ioslearner.com/generate-pdf-programmatically-iphoneipad/
任何建议.
//EMAIL SENDING CODE FROM ASSET FOLDER
email = editTextEmail.getText().toString();
subject = editTextSubject.getText().toString();
message = editTextMessage.getText().toString();
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("file/html");
emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://com.example.deepa.xmlparsing/file:///android_assets/Combination-1.html"));
startActivity(Intent.createChooser(emailIntent, "Send email using"));
Run Code Online (Sandbox Code Playgroud)
最后,我从资产文件夹(Combination-1.html)获取文件.
它越来越好了
找不到运行时错误文件异常.
有没有其他方式发送文件附件?
使用内联附件和非内联附件创建HTML电子邮件的正确方法是什么?
另外,请告诉我仅使用内联附件和仅使用非内联附件的内容类型.
到现在为止我这样做了:
MIME-Version: 1.0
[some more headers]
Content-type: multipart/mixed;
boundary="myboundary"
--myboundary
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit
[html with img cid:my_image]
--myboundary
Content-Type: image/png; name="my_image.png"
Content-Transfer-Encoding: base64
Content-ID: <my_image>
Content-Disposition: inline; filename="my_image.png"
[base64 image data]
--myboundary
Content-type: application/pdf; name="my_pdf.pdf"
Content-length: 1150
Content-Transfer-Encoding: base64
Content-ID: <my_pdf.pdf>
Content-Disposition: attachment; filename="my_pdf.pdf"
[base64 pdf data]
--myboundary--
Run Code Online (Sandbox Code Playgroud)
邮件看起来很好看.但是我注意到Thunderbird没有显示我的内嵌图像,而是显示了2个附件(我的图像和我的PDF).所以我做了一些调试,发现内联图像应该通过发送Content-Type: multipart/related
.
所以我改变了Content-Type: multipart/mixed
对Content-Type: multipart/related
和Thunderbird显示它正确的:图像是HTML和一个附件所示,PDF所示.
我不确定这是否是正确的解决方案,虽然它似乎有效.是否正确使用multipart/related
(如果我有内联和非内联附件,如果我只有内联附件,如果我只有非内联附件)?
或者是使用一个类型边界相关的拆分内联附件和另一个类型混合边界以拆分非内联附件的正确方法?
我希望你能为我提供样品
我使用SMTPclient发送带附件的邮件.当附件超过2mb时,我收到以下错误:**"超出存储分配.服务器响应是:4.3.1消息大小超过固定的最大消息大小".**
1)我可以使用附件大小> 2mb的smtpclient发送电子邮件**.**如果是,附件的限制是多少.
2)如何解决上述错误?
如果你有解决方案,请给我一个想法.
我希望实现一个按钮,按下它将打开带有附件文件的默认电子邮件客户端.
我正在关注这个,但是我在startActivity上收到一条错误消息,说它正在期待一个活动参数,而我正在给它一个意图.我使用的是API 21和Android Studio 1.1.0,所以它可能与链接中提供的答案中的注释有关?
这是我作为Android开发人员的第四天,很抱歉,如果我遗漏了一些非常基本的东西.
这是我的代码:
public void sendFileToEmail(File f){
String subject = "Lap times";
ArrayList<Uri> attachments = new ArrayList<Uri>();
attachments.add(Uri.fromFile(f));
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, attachments);
intent.setClassName("com.android.email", "com.android.mail.compose.ComposeActivity");
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 我的应用程序使用iText库创建PDF(带有填写表格的模板PDF),然后我想将其附加到要发送的电子邮件中.当我尝试附加文件时,我Can't attach empty file
在Gmail应用中收到了错误消息.还试过HTC电子邮件应用程序和Touchdown电子邮件应用程序 - 两者都没有附加任何内容并且没有错误.
创建PDF:
public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
// Fill all PDF forms here (theres quite a few)
stamper.setFormFlattening(true);
stamper.close();
reader.close();
}
Run Code Online (Sandbox Code Playgroud)
试图附加文件和发送电子邮件:
public void sendMail(){
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent .setType("*/*");
emailIntent .putExtra(Intent.EXTRA_EMAIL, "blah@gmail.com");
emailIntent .putExtra(Intent.EXTRA_STREAM, Uri.parse(dest));
emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Subject");
startActivity(Intent.createChooser(emailIntent, "Send email..."));
}
Run Code Online (Sandbox Code Playgroud)
相关dest
文件的路径和文件名在哪里.我知道路径和文件名dest
是正常的,因为这是用于保存文件的var(我可以在设备和PC上查看).
Gmail logcat: …
我正在使用fileupload控件创建一个ASP.Net表单,然后将表单和文件的详细信息通过电子邮件发送给另一个管理员.我想确保这个安全(对于服务器和收件人).附件应该是简历,因此我将其限制为典型的文本文档.
据我所知,最好的办法是检查文件扩展名或MIME类型是否属于那种,并根据"幻数"进行检查,以验证扩展名是否未更改.我不太关心如何去做,但想知道这是否足够.
我也很乐意使用第三方产品来处理这个问题,我看了几个:
blueimp jQuery文件上传 http://blueimp.github.io/jQuery-File-Upload/
和cutesoft ajaxuploader http://ajaxuploader.com/Demo/
但是blueimp仍然似乎需要自定义服务器验证(我想只是jQuery它只是处理客户端验证)而.net one检查MIME类型是否与扩展名匹配,但我认为MIME类型仍然遵循扩展名.
所以,
将文件作为附件添加但未保存时,是否需要担心服务器安全性?是否有插件或控件可以很好地处理这个问题?如果我需要实现一些用于服务器验证的东西,我自己将MIME类型与"神奇数字"匹配得足够好吗?
我确定没有什么是100%防弹,但文件上传是非常常见的东西,我认为大多数实现都"足够安全" - 但是如何!?
如果它是相关的,这是我到目前为止的基本代码
<p>Please attach your CV here</p>
<asp:FileUpload ID="fileUploader" runat="server" />
Run Code Online (Sandbox Code Playgroud)
并提交
MailMessage message = new MailMessage();
if (fileUploader.HasFile)
{
try
{
if (fileUploader.PostedFile.ContentType == "text")
{
// check magic numbers indicate same content type... if(){}
if (fileUploader.PostedFile.ContentLength < 102400)
{
string fileName = System.IO.Path.GetFileName(fileUploader.PostedFile.FileName);
message.Attachments.Add(new Attachment(fileUploader.PostedFile.InputStream, fileName));
}
else
{
// show a message saying the file is too large
}
}
else
{ …
Run Code Online (Sandbox Code Playgroud) 我正在使用System.Net.Mail在asp.net中发送邮件..如何在附件邮件发送后删除附件文件..我试图使用File.Delete方法..但我收到此错误..进程无法访问文件路径\ fun.jpg',因为它正由另一个进程使用.谢谢
email ×4
android ×3
asp.net ×2
c# ×2
ios ×2
file-upload ×1
iphone ×1
javascript ×1
mime ×1
objective-c ×1
r ×1
sharepoint ×1
smtp ×1
smtpclient ×1
validation ×1