전자 메일 확인을위한 신청서가 있습니다. 이메일 부분은 Commons Mail API를 사용합니다. 메일을 보내는 간단한 코드는 아래와 같습니다.Tomcat에서 Java 메일 첨부 파일이 작동하지 않습니다.
import org.apache.commons.mail.*;
...
// Create the attachment
EmailAttachment attachment = new EmailAttachment();
attachment.setURL(new URL("http://cashew.org/doc.pdf"));
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Testing attach");
attachment.setName("doc.pdf");
// Create the email message
MultiPartEmail email = new MultiPartEmail();
email.setHostName("mail.cashew.com");
email.addTo("[email protected]");
email.setFrom("[email protected]");
email.setSubject("Testing);
email.setMsg("testing message");
// add the attachment
email.attach(attachment);
// send the email
email.send();
Eclipse에서이 응용 프로그램을 실행할 때 문제가없는 첨부 파일과 함께 전자 메일이 전송됩니다. 하지만 Tomcat 서버에 응용 프로그램을 배포하면 (
모두 버전 5 & 6 시도 없음) 전자 메일은 아래 내용으로 전송됩니다.
------=_Part_0_25002283.1275298567928
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
testing
Regards,
los
------=_Part_0_25002283.1275298567928
Content-Type: application/pdf; name="doc.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="doc.pdf"
Content-Description: Testing attach
JVBERi0xLjQNJeLjz9MNCjYzIDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDMxMzE4Mi9PIDY1L0Ug
Mjg2NjY5L04gMS9UIDMxMTgwMi9IIFsgMjgzNiAzNzZdPj4NZW5kb2JqDSAgICAgICAgICAgICAg
DQp4cmVmDQo2MyAxMjcNCjAwMDAwMDAwMTYgMDAwMDAgbg0KMDAwMDAwMzM4MCAwMDAwMCBuDQow
MDAwMDAzNTIzIDAwMDAwIG4NCjAwMDAwMDQzMDcgMDAwMDAgbg0KMDAwMDAwNTEwOSAwMDAwMCBu
DQowMDAwMDA2Mjc5IDAwMDAwIG4NCjAwMDAwMDY0MTAgMDAwMDAgbg0KMDAwMDAwNjU0NiAwMDAw
MCBuDQowMDAwMDA3OTY3IDAwMDAwIG4NCjAwMDAwMDkwMjMgMDAwMDAgbg0KMDAwMDAwOTk0OSAw
MDAwMCBuDQowMDAwMDExMDAwIDAwMDAwIG4NCjAwMDAwMTIwNTkgMDAwMDAgbg0KMDAwMDAxMjky
MCAwMDAwMCBuDQowMDAwMDEyOTU0IDAwMDAwIG4NCjAwMDAwMTI5ODIgMDAwMDAgbg0KMDAwMDAx
.......
CnN0YXJ0eHJlZg0KMTE2DQolJUVPRg0K
------=_Part_0_25002283.1275298567928--
내가 주목 한 것 중 하나는 헤더 정보가 TO 및 Subject 값을 표시하지 않는다는 것입니다. 흠, 꽤 귀엽다. 위의 내용은 DEBUG이 생성되지 않았 음을 나타내야합니다. Outlook 클라이언트에서 수신되는 실제 메시지입니다.
나를 도와 줄 수있는 사람이 있습니까?
업데이트 : 응용 프로그램이 매우 간단합니다. 파트와 텍스트 메시지를 별도의 파트로 첨부하십시오.
public final void Email(String from, String to, String cc,
String subject, String message, String doc, String bcc) {
MultiPartEmail email = new MultiPartEmail();
try {
if (!(doc == null)) {
EmailAttachment attachment = new EmailAttachment();
attachment.setURL(new URL("http://cashew.org/doc.pdf"));
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Testing attach");
attachment.setName("doc.pdf");
email.attach(attachment);
}
email.setHostName("mail.cashew.com");
// [ Set Header details
email.setTo(getAddress(to));
email.setFrom(from);
email.setSubject(subject);
if (!(cc == null)) {
eEmail.setCc(getAddress(cc));
}
if (!(bcc == null)) {
email.setBcc(getAddress(bcc));
}
email.setMsg(message);
email.send();
} catch (Exception ex) {
ex.printStackTrace();
}
}
누가 무슨 일이 일어나는지 알고 있습니까?
나는 우리에게 모든 것을 보여줄 것이라고 생각하지 않습니다. 예를 들어 멀티 파트 메시지의 첫 번째 부분에 대한 코드가 표시되지 않습니다. –
@Alexander - 위에 표시된 이메일 전송을 수행하는 방법. – Bitmap