1

これとまったく同じ問題に悩まされていましたが 、投稿された解決策で問題を解決できました。しかし、問題は、添付ファイルを受信したときに名前がないことです。私の方法では、ファイルの受信者の電子メール ID、件名、コンテンツ、ファイル名、およびバイト [] を要求しました。渡すファイルの形式に問題はありませんが、名前に問題があります。受信者はファイル名として「noname」を取得します。選択したファイル名をどのように指定しますか。パラメータとして渡しているファイル名が反映されません。提案してください。

私が使用しているコードは

File file = new File("D:/my docs/Jetty.pdf");
int len1 = (int)(file.length());
FileInputStream fis1 = null;
try {
    fis1 = new FileInputStream(file);
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
byte buf1[] = new byte[len1];
try {
    fis1.read(buf1);
    EmailServiceClient.sendEmailWithAttachment("xyz@gmail.com", "abc@gmail.com", "Hi", "PFA", "Jetty.pdf", buf1);

    System.out.println("SENT");
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

このための私のメールサービスの実装はここにあります

public void sendEmailWithAttachment(String emailIdTo, String emailIdFrom, String subject, String content,
    final String fileName, byte[] file) {
MimeMessage message = mailSender.createMimeMessage();
try {
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    helper.setTo(emailIdTo);
    helper.setFrom(emailIdFrom);
    helper.setSubject(subject);
    helper.setText(content, true);
    helper.addInline("attachment", new ByteArrayResource(file) {
        @Override
        public String getFilename() {
            return fileName;
        }
    });
    mailSender.send(message);
} catch (MessagingException e) {
    throw new MailParseException(e);
}}

誰かがこれを理解するのを手伝ってください

4

1 に答える 1

1

Spring Documentation から、インライン要素には contentId 以外の特別な名前はないと言えます。addAttachment メソッドを使用する代わりに添付ファイルを追加したい場合がありますか? 次に、ファイルに名前を付けることができます。

http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/mail/javamail/MimeMessageHelper.html

于 2013-02-25T05:06:30.130 に答える