아무리 시도해도 javax.mail Session 클래스를 통해 보낸 보내는 메일에 보낸 사람 이름을 표시 할 수 없습니다.javax.mail에 전자 메일의 보낸 사람 이름이 포함되지 않습니다.
Rhino를 사용하고 있으므로 여기에는 javascript와 java가 혼합되어 있지만 순수한 자바에는 코드 문제가 있습니다.
Sender: Personal Name <[email protected]>
을하지만로부터는 항상 :를 통해 제공
var _java = JavaImporter(javax.mail, javax.mail.internet, java.util);
var props = new _java.Properties();
props.put("mail.smtp.host", myHost);
props.put("mail.smtp.port", "465");
props.put("mail.smtp.user", myUserName);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.port", 465);
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.ssl", "true");
var session = _java.Session.getInstance(props);
var message = _java.MimeMessage(session);
message.setSender(
new _java.InternetAddress("myEmailAddress", "My Full Name")
);
message.setRecipients(
_java.Message.RecipientType.TO,
[new _java.InternetAddress("[email protected]", true)]
);
message.setText("Testing");
message.setSubject("Test");
message.setSentDate(new Date());
var t = session.getTransport("smtp");
t.connect(myUserName, myPassword);
t.sendMessage(message, message.getAllRecipients());
이메일은이
가From: [email protected]
따라서 Outlook 및 Gmail과 같은 메일 클라이언트가 이름을 따 버릴 수 없습니다.
나는
props.put("mail.smtp.from", "Full Name <[email protected]>")
을 추가하는 시도했지만이 어떤 차이를하지 않습니다.
아무도이 버그에 경험이 있습니까?
감사합니다.
표시 완전한 자립 예를 가지고 선택을 취소하고 싶습니다. –
SMTP 서버에 무엇을 사용하고 있습니까? "개인 이름"을 지원합니까? –
서버에서 지원하므로 명령 줄을 통해 제대로 보낼 수 있습니다. 문제는 javax 라이브러리의 어딘가에 있습니다. – Scott