Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javax.mail不包括电子邮件中的发件人名称_Java_Smtp_Jakarta Mail_Mail Sender - Fatal编程技术网

javax.mail不包括电子邮件中的发件人名称

javax.mail不包括电子邮件中的发件人名称,java,smtp,jakarta-mail,mail-sender,Java,Smtp,Jakarta Mail,Mail Sender,不管我怎么做,我都无法在通过javax.mail会话类发送的邮件中显示发件人名称 请注意,我使用的是Rhino,所以这里混合了javascript和java,但纯java中也存在代码问题 var _java = JavaImporter(javax.mail, javax.mail.internet, java.util); var props = new _java.Properties(); props.put("mail.smtp.host", myHos

不管我怎么做,我都无法在通过javax.mail会话类发送的邮件中显示发件人名称

请注意,我使用的是Rhino,所以这里混合了javascript和java,但纯java中也存在代码问题

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("anyAddress@anydomain.com", 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());
通过的电子邮件有:

Sender: Personal Name <email@domain.com>
因此,像Outlook和Gmail这样的邮件客户端不会删除这个名称

我试着加上

props.put("mail.smtp.from", "Full Name <email@domain.com>")
props.put(“mail.smtp.from”,“全名”)
但这没什么区别

有人有过这个错误的经验吗

谢谢。

多痛苦啊

错误在于我使用了message.setSender而不是message.setFrom


更改解决了它。

我想清除它,因为我有相同的问题

// sender the email string example test@test.com

message.setFrom(new InternetAddress(sender));

显示完整的独立示例。SMTP服务器使用什么?它支持“个人名称”吗?我可以通过命令行发送,所以服务器支持它。问题出在javax库的某个地方。我将发布一个完整的示例,但为了避免混淆,我必须将其区分开来。我使用的是setFrom。邮件头在邮件源中,但是,thunderbird没有以发件人的名称显示它。苹果邮件确实如此。不知道有什么区别。
// sender the email string example test@test.com

message.setFrom(new InternetAddress(sender));