我正在设计一个使用Gmail的smtp主机发送带有附件的电子邮件的应用程序。但是当文件大于25 MB时,我收到一条错误消息,提示“ 552-5.2.3您的消息超出了Google的消息大小限制。请访问https://support.google.com/mail/?p=MaxSizeError以查看我们的大小准则。 188sm2692677pfg.11 -gsmtp ”
final String username = "username@gmail.com";
final String password = "password";
Properties prop = new Properties();
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.port", "587");
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.starttls.enable", "true");
Session session = Session.getInstance(prop,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("username@gmail.com"));
message.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse("receiver address"));
message.setSubject("This mail is a test mail");
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("Message");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
String filename = <Path>;
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport.send(message);
} catch (MessagingException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
是否可以发送大于gmail的25 MB限制的文件? 我可以通过帐户设置更改文件大小上传限制,还是可以执行任何操作,例如将任何文件作为驱动器链接上传?
答案 0 :(得分:1)
不。那是硬性限制。 Gmail本身指出:
如果文件大于25 MB,则Gmail会自动在电子邮件中添加Google云端硬盘链接,而不是将其作为附件
这也是我为您推荐的,上传文件 somewhere 并将链接粘贴到邮件中。选项可能是:Google云端硬盘,Mega,Dropbox,S3,...
除此之外,您无能为力。
答案 1 :(得分:1)
用户友好的方法可能是将文件上传到某处,并在邮件中添加指向文件的链接。
还可以将文件分成几个较小的部分,然后以自己的邮件形式发送每个部分。然后,收件人需要再次将文件合并在一起。
Zip存档器通常可以将大文件拆分为多个zip文件,然后可以将其再次合并在一起。
还有原始拆分和合并。我还没有遇到过标准内置于操作系统发行版中的拆分命令。但是您的程序可以按照您希望的任何方式分割文件。
在Windows或Unix(Linux和其他)操作系统下,加入文件非常容易。在Windows中,请转到命令提示符并使用“复制”:copy file1+file2+file3 finalfile
在Unix中,请使用“ cat”:cat file1 file2 file3 > finalfile