标签: attachment

如何使用SMTP发送附件?

我想编写一个使用Python的smtplib发送电子邮件的程序.我搜索了文档和RFC,但找不到任何与附件相关的内容.因此,我确信我错过了一些更高级别的概念.有人能告诉我附件如何在SMTP中工作吗?

python email smtp attachment smtplib

21
推荐指数
3
解决办法
5万
查看次数

通过NodeJS发送带附件的邮件

NodeJS是否有用于发送带附件的邮件的库?

email attachment node.js

21
推荐指数
2
解决办法
4万
查看次数

JavaMail从字符串发送邮件附件 - 编码UTF-8

我的应用程序必须发送一个文本文件,它首先必须生成一个String.该文本包含非ASCII符号,所以我希望它是UTF-8.我已经尝试了很多变种,但我收到的所有附件都是一些问号.并且,当我发送与邮件正文相同的文本时,它可以正常工作.

以下是生成带附件的MimeBodyPart的代码行:

String attachment = "??????";
messageBodyPart.setContent(new String(attachment.getBytes("UTF-8"),
    "UTF-8"),"text/plain; charset=UTF-8");
Run Code Online (Sandbox Code Playgroud)

我也尝试使用没有任何转换的字符串,只使用字节,现在,如你所见,我试图从字节生成一个字符串...

我究竟做错了什么?(我确实记得在另一个项目中这样做,但是我不再能够访问它的源代码).

先感谢您.提莫菲.

UPDATE

阅读完回复后,经过一些不成功的试验后,我认为最好发布我的邮件代码.我有一个Mailer类,它负责邮件发送,其他类可以调用它的静态sendMessage()方法来发送消息.这一切都在Google App Engine上运行.

public static void sendMessage(String to, String subject, String msgBody,
            String attachment) throws AddressException, MessagingException {

    Properties props = new Properties();

    Session mailSession = Session.getDefaultInstance(props, null);
    Message msg = new MimeMessage(mailSession);
    String email = "bla-bla-bla"; // userService.getCurrentUser().getEmail();

    msg.setFrom(new InternetAddress(email));
    msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

    InternetAddress[] addresses = { new InternetAddress("bla-bla-bla") };

    msg.setReplyTo(addresses);
    msg.setSubject(subject);

    Calendar cal = Calendar.getInstance();

    String fileName = cal.get(Calendar.YEAR) + …
Run Code Online (Sandbox Code Playgroud)

java encoding attachment jakarta-mail

21
推荐指数
3
解决办法
5万
查看次数

附件的HTTP响应标头内容处置

背景

将XML文档写入浏览器的响应流,并使浏览器显示"另存为"对话框.

问题

请考虑以下download()方法:

  HttpServletResponse response = getResponse();

  BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(
      response.getOutputStream() ) );

  String filename = "domain.xml";
  String mimeType = new MimetypesFileTypeMap().getContentType( filename );

  // Prints "application/octet-stream"
  System.out.println( "mimeType: " + mimeType );

  // response.setContentType( "text/xml;charset=UTF-8" );
  response.setContentType( mimeType );
  response.setHeader( "Content-Disposition", "attachment;filename="
      + filename );

  bw.write( getDomainDocument() );
  bw.flush();
  bw.close();
Run Code Online (Sandbox Code Playgroud)

在Firefox中,XML内容显示在浏览器窗口中.在IE 7中,不显示XML内容 - 您必须查看文档源.这两种情况都不是理想的结果.

该网页使用以下代码作为按钮:

    <a4j:commandButton action="#{domainContent.download}" value="Create Domain" reRender="error" />
Run Code Online (Sandbox Code Playgroud)

所生成的XML 下手<?xml version="1.0"?>,而XML内容类似于:

<schema xmlns="http://www.jaspersoft.com/2007/SL/XMLSchema" version="1.0">
  <items>
    <item …
Run Code Online (Sandbox Code Playgroud)

java ajax jboss richfaces attachment

21
推荐指数
3
解决办法
12万
查看次数

使用PHP中的IMAP将附件下载到目录,随机工作

我在网上找到PHP代码,从这里使用IMAP将附件下载到目录.http://www.nerdydork.com/download-pop3imap-email-attachments-with-php.html

我稍微修改了它

        $structure = imap_fetchstructure($mbox, $jk);
        $parts = ($structure->parts);
Run Code Online (Sandbox Code Playgroud)

        $structure = imap_fetchstructure($mbox, $jk);
        $parts = ($structure);
Run Code Online (Sandbox Code Playgroud)

让它运行正常,否则我得到一个错误,关于stdClass如何定义一个名为$ parts的属性.这样做,我能够下载所有附件.我最近再次测试它,但它没有用.好吧,它没有工作6次,工作到第7次,然后没有工作.我认为这与我搞砸零件处理有关,因为count($ parts)每个消息都会返回1,所以我认为它没有找到任何附件.

由于它在一个点上下载了附件而没有任何问题,我相信这个区域的事情已经搞砸了就在这里.在此代码块之前是一个for循环,它遍历框中的每个消息,并且在循环之后,每个imap结构只传递$ parts.感谢您的任何帮助,您可以提供.我查看了php.net上的imap_fetchstructure页面,无法弄清楚我做错了什么.

编辑:我只是在输入我的问题后仔细检查了文件夹,然后全部弹出.我觉得我疯了.我在开始输入这个代码之前的几分钟就没有运行过代码,而且对我来说没有任何意义,这需要很长时间才能触发.我在邮箱中有大约800条消息,但我想,因为它在PHP的最后打印了我的语句,表明所有文件创建工作都已完成.

php imap attachment

20
推荐指数
3
解决办法
6万
查看次数

Android将文件附加到GMAIL - 无法附加空文件

我有一个程序,总是将相同的文件附加到GMAIL(Compose> Attach File> Open From>"MyProgram").它总是会选择相同的文件.

它做的是:

String path = Environment.getExternalStorageDirectory() + "/file.3gp";
File f = new File(path);
Uri data = Uri.fromFile(f);
Intent i = new Intent();
i.setData(data);
setResult(Activity.RESULT_OK, i);
finish();
Run Code Online (Sandbox Code Playgroud)

这个工作正常,直到Android 6.0.现在,我在尝试使用它时收到以下错误:

无法附加空文件

Astro文件共享给了我同样的错误(可以是旧版本).

但是,我安装了ES文件资源管理器,当我执行相同的例程并选择文件时,我收到一个Dialog,其中说:

拿起文件为

  • 普通Android方式(适用于彩信,Gmail,...)
  • 文件方式(如果失败,请尝试此操作)

"文件方式"将失败,因为我的程序."普通的Android方式"将正常工作.

有没有人知道它的作用,所以我可以复制?

提前致谢!

OBS:已经尝试了很多次putExtra(STREAM,路径),但没有成功.

android attachment android-intent

20
推荐指数
2
解决办法
2万
查看次数

android导出到csv并作为电子邮件附件发送

我在这个网站上看到多个线程讨论在android中发送带附件的电子邮件.我想讨论的每一个方法在这里,这里这里.

我正在通过代码创建一个csv文件并将此文件保存到android内部存储.然后我想在电子邮件中将此文件作为附件发送.嗯,电子邮件正在发送,我收到它没有附件.这就是我所做的.

String columnString         =   "\"Person\",\"Gender\",\"Street1\",\"PostOfice\",\"Age\"";
String dataString           =   "\"" + currentUser.userName +"\",\"" + currentUser.gender + "\",\"" + currentUser.street1 + "\",\"" + currentUser.poNumber.toString() + "\",\"" + currentUser.age.toString() + "\"";
String combinedString       =   columnString + "\n" + dataString;
File file                   =   new File(this.getCacheDir()+ File.separator + "Data.csv");
try {
    FileOutputStream out    =   new FileOutputStream(file);
    out.write(combinedString.getBytes());
    out.close();
} catch (IOException e) {
    Log.e("BROKEN", "Could not write file " + e.getMessage());
}   
Uri u1                      =   Uri.fromFile(file);

Intent sendIntent …
Run Code Online (Sandbox Code Playgroud)

csv email android export attachment

19
推荐指数
1
解决办法
3万
查看次数

松弛附件宽度和包装问题

我正在尝试使用松散的附件来记录应用程序错误,但像堆栈跟踪这样的大字段表现得非常奇怪.

首先,当使用附件时,表似乎被固定到某个任意宽度,无论如何要改变它,以便允许更宽的值?否则50%的松弛窗口是空白的,完全是浪费. 在此输入图像描述

仅使用文本可以正常工作,但是还有许多其他较小的字段可以从字段格式中受益.

另外,当消息很大时,我遇到了松弛做奇怪包装的问题.下面只是一个小片段,有几个字符掉落,但在整个堆栈上可能会有很大的损失.

示例(松弛消息构建器) 在此输入图像描述

在字符串中添加一个字符,现在它开始关闭(文本就在那里并且可以选择,它只是在包装上做得很糟糕.)

例2 在此输入图像描述

任何人都有任何建议,以获得更有用的东西?

attachment slack-api slack

19
推荐指数
1
解决办法
3382
查看次数

如何使用System.Net.Mail为电子邮件添加附件?

我有一个表示为byte []的excel文档,我想将其作为附件发送到电子邮件中.

我在构建附件时遇到了一些麻烦.

我可以创建一个具有以下构造函数的Attachment:

(Stream contentStream, ContentType contentType)
(Stream contentStream, string name)
(Stream contentStream, string name, string mediaType)
Run Code Online (Sandbox Code Playgroud)

我的想法是从byte []创建一个MemoryStream并将其传递给创建附件的方法.

不幸的是,我看不到从MemoryStream获取预期文件名和内容类型的方法,我也看不到如何提供正确的内容类型.有纯文本,Pdf,Rtf等选项,但我没有看到立即跳出来作为我应该用于Excel文档的那个.

我能找到的最接近的是MediaTypeNames.Application.Octet,其中说明:

Octet成员指定附件包含通用二进制数据.

但是,即使这是一个使用的,除非它可以作为Stream的属性传递,那么我的发送电子邮件的方法只能发送一个byte []作为Excel文档...

是否有其他类型的流可以使用?或者我是否必须创建我自己的Stream类型,其中包含我需要的详细信息.

当然有人在那里做过这件事,当然微软会想到这个水平......

任何帮助将非常感激.

更新: 请不要投票使用将文件名作为字符串的构造函数的任何答案.我真的需要帮助使用带有Stream的那些......我想避免将文件写入磁盘,通过电子邮件发送,然后立即将其删除.由于有一种方法可以让我这样做,我想尽可能使用那个.

解决方案更新

康拉德设法找到了我要找的东西!谢谢堆人!

我只是记录建议的解决方案,以防万一在提供的链接上的内容发生了什么.

这个解决方案可以归功于www.systemnetmail.com

static void AttachmentFromStream()
{

//create the mail message
MailMessage mail = new MailMessage();

//set the addresses
mail.From = new MailAddress("me@mycompany.com");
mail.To.Add("you@yourcompany.com");

//set the content
mail.Subject = "This is an email";
mail.Body = "this content is in the body";

//Get some binary data
byte[] …
Run Code Online (Sandbox Code Playgroud)

c# email binary attachment system.net.mail

17
推荐指数
2
解决办法
5万
查看次数

流作为System.Net.Mail的附件是0字节

我有一个项目,我正在使用PDF生成器向用户发送文件.我们希望为用户提供将此文件附加到电子邮件的选项,而我们在使用Stream对象和附件逻辑时遇到问题.

我们从ABCpdf开始,它有两个保存方法:它可以保存到Stream,或者如果你给它一个字符串,它会尝试保存到磁盘上的文件.我们两个都没问题.

Stream stream = new MemoryStream();
myPdf.Save(stream);
Run Code Online (Sandbox Code Playgroud)

此时一切都很酷 - stream有几千字节的数据,如果你.save()到一个文件,你得到一个具有相同字节数的实际文件.

所以我们此时附上一封电子邮件(初始化邮件对象后,设置为:和发件人:等):

mail.Attachments.Add(new Attachment(stream, "myPdf.pdf"));
mail.Send();
Run Code Online (Sandbox Code Playgroud)

...让我们收到一个0字节的电子邮件,但正确的文件名.

我在网上找到的所有例子都使用StreamReader或StreamWriter或Flush()等.它总是看起来比简单传递Stream更复杂,但可能只有一两行更复杂.这些示例都不是以Stream开头的 - 他们总是试图将数组转换为Stream来向您展示它是多么容易,或者从磁盘中获取文件(我们无法做到这一点,这就是为什么我们很兴奋使用Stream).

无论如何,如果有人能解释我做错了什么或我应该做什么,我真的很感激.谢谢.

.net asp.net email streaming attachment

17
推荐指数
1
解决办法
8322
查看次数