- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
MimeMessage.saveChanges is really slow
(1 个回答)
3年前关闭。
我正在测试中所述的 sendmail 示例
https://javaee.github.io/javamail/FAQ .这是一个简单的邮件发送操作,没有 SSL 也没有附件。它在任何地方都可以正常工作,但是在客户端上,当邮件 api 更新时,我们的性能会下降。
服务器是windows,java 1.8.131,在所有测试用例上使用相同的邮件服务器和邮件帐户以及相同的地址和java源。唯一的区别是使用的mailapi。我运行程序
java -cp javax.mail.1.X.X.jar;sendmailtesttool.jar SendMail
Properties properties = new Properties();
properties.put("mail.smtp.host", 192.168.0.X); // use default port25
Session session = Session.getInstance(properties);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(..);
msg.setSubject(..);
msg.setRecipients(..);
//no attachments
MultiPart mp = new MultiPart();
MimeBodyPart bp = new MimeBodyPart();
DataSource ds = ByteArrayDataSource("foo"..);
DataHandler dh = new DataHandler(ds);
bp.setDataHandler(dh);
mp.addBodyPart(bp);
msg.setContent(mp);
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
msg.saveChanges(); // is really needed ? (no reply/forward)
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
Sending mail.....start
Setting port to:25
Setting host to:192.168.0.213
Set additional session prop host to prevent HELO
Set additional session prop from to prevent EHLO
Session generated with authenticator took:63
Message generated took:47
Parse from address took:0
Set from address to message took:0
Set recipients took:0
Get all recipients took:0
Set cc, bcc took:0
Parse subject took:16
Set subject to message took:0
Set body text took:0
Set content took:0
Set sent date took:15
Transport generated took:32
Connected to transport took:93
Save changes took:0
Message send took:94
Transport closed took:0
Message id fetched took:0
Sending mail.....completed in 391
Average took: *391.0*
Sending mail.....start
Setting port to:25
Setting host to:192.168.0.213
Set additional session prop host to prevent HELO
Set additional session prop from to prevent EHLO
Session generated with authenticator took:62
Message generated took:63
Parse from address took:0
Set from address to message took:16
Set recipients took:0
Get all recipients took:0
Set cc, bcc took:0
Parse subject took:0
Set subject to message took:0
Set body text took:0
Set content took:0
Set sent date took:15
Transport generated took:32
Connected to transport took:9126
Save changes took:0
Message send took:47
Transport closed took:0
Message id fetched took:0
Sending mail.....completed in 9423
Average took: *9423.0*
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning
javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.s
mtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "192.168.0.X", port 25, isSSL
false
220 mail.******.com ESMTP Postfix
DEBUG SMTP: connected to host "192.168.0.X", port: 25
EHLO WIN-0RL58R42TTN
250-mail.******.com
250-PIPELINING
250-SIZE 102400000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "SIZE", arg "102400000"
DEBUG SMTP: Found extension "VRFY", arg ""
DEBUG SMTP: Found extension "ETRN", arg ""
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "AUTH", arg "PLAIN LOGIN"
DEBUG SMTP: Found extension "AUTH=PLAIN", arg "LOGIN"
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "DSN", arg ""
DEBUG SMTP: Attempt to authenticate
AUTH LOGIN
334 VXNlcm5hbWU6
am9iaW4uZWxhbmppY2thbEBhbGNvbmVsZWN0cm9uaWNzLmNvbQ==
334 UGFzc3dvcmQ6
Sk9CSU5ANzc3TnM=
235 2.7.0 Authentication successful
DEBUG SMTP: use8bit false
MAIL FROM:<sender@******.com>
250 2.1.0 Ok
RCPT TO:<receiver@******.com>
250 2.1.5 Ok
DEBUG SMTP: Verified Addresses
DEBUG SMTP: receiver@******.com
DATA
354 End data with <CR><LF>.<CR><LF>
Date: Thu, 14 Dec 2017 14:17:46 +0530 (IST)
From: sender@******.com
To: receiver@******.com
Message-ID: <396180261.01513241266298.JavaMail.sender@******
.com>
Subject: test3
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_0_2093176254.1513241266126"
------=_Part_0_2093176254.1513241266126
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
test
------=_Part_0_2093176254.1513241266126--
.
250 2.0.0 Ok: queued as 7E38D48F0411
QUIT
221 2.0.0 Bye
DEBUG: setDebug: JavaMail version 1.5.6
DEBUG: getProvider() returning
javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.s
mtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "192.168.0.X", port 25, isSSL
false
220 mail.******.com ESMTP Postfix
DEBUG SMTP: connected to host "192.168.0.X", port: 25
EHLO WIN-0RL58R42TTN
250-mail.******.com
250-PIPELINING
250-SIZE 102400000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "SIZE", arg "102400000"
DEBUG SMTP: Found extension "VRFY", arg ""
DEBUG SMTP: Found extension "ETRN", arg ""
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "AUTH", arg "PLAIN LOGIN"
DEBUG SMTP: Found extension "AUTH=PLAIN", arg "LOGIN"
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "DSN", arg ""
DEBUG SMTP: protocolConnect login, host=192.168.0.X, user=sender@alc
onelectronics.com, password=<non-null>
DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN
DIGEST-MD5 NTL
M XOAUTH2
DEBUG SMTP: Using mechanism LOGIN
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN succeeded
DEBUG SMTP: use8bit false
MAIL FROM:<sender@******.com>
250 2.1.0 Ok
RCPT TO:<receiver@******.com>
250 2.1.5 Ok
DEBUG SMTP: Verified Addresses
DEBUG SMTP: receiver@******.com
DATA
354 End data with <CR><LF>.<CR><LF>
Date: Thu, 14 Dec 2017 14:18:03 +0530 (IST)
From: sender@******.com
To: receiver@******.com
Message-ID: <1109371569.1.1513241292669@******.com>
Subject: test3
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_0_1349393271.1513241283434"
------=_Part_0_1349393271.1513241283434
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
test
------=_Part_0_1349393271.1513241283434--
.
250 2.0.0 Ok: queued as D894D48F0411
DEBUG SMTP: message successfully delivered to mail server
QUIT
221 2.0.0 Bye
最佳答案
我不相信只有一个原因让它变慢。您可能需要在示例下方更改一些默认值。
In the 1.6 document of the mail api属性(property)mail.mime.address.usecanonicalhostname
它指出:
Use the InetAddress.getCanonicalHostName method to determine the host name in the InternetAddress.getLocalAddress method. With some network configurations, InetAddress.getCanonicalHostName may be slow or may return an address instead of a host name. In that case, setting this System property to false will cause the InetAddress.getHostName method to be used instead. The default is true.
关于java - 使用不同的邮件 api jar 降低 sendmail 性能 (javamail),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47807784/
tl;博士:我们的 Spring Boot jar 中的类似乎可以看到捆绑的 jar 中的类,但它们的内容似乎无法看到。为什么? 我们的主要产品是一个网络应用程序,但所有的业务逻辑都集中在一个核心 m
我有一个适用于 Java 8 的 jar。 我想创建一个新 jar,它将是多版本 JAR 但为空,只有 META-INF/versions 中的“修补”类. 我想要一个单独的 jar,这样人们就可以在
免责声明: 在我得到“这个问题已经被问了 1000 次”的标准之前,让我说,是的,我知道。我读了又读又读。看了 JarJar 和 One-JAR,但问题是:我是自学成才的,只有几个月的经验,而且我不熟
我知道要组合多个 jar 并创建一个可执行 jar,我需要使用像 OneJar 这样的工具如果我不想解压相关的 jar 。 OneJar 有自己的自定义类加载器,可以在关联的 jar 中找到所需的类并
在我的项目中,我使用许多 jar 文件来支持该项目。随着 jar 文件数量的增加,我想将所有 jar 文件移动到一个 jar 中并利用它。您能给我提供有用的链接吗?可以帮助我做到这一点。 最佳答案 有
我有一个脚本可以删除目录中的低版本 jars 文件。 #!/bin/bash #Script to remove lower version jar files. for PREFIX in `ls
可执行 jar 文件可以自行重启吗?例如,在用户做出一些选择后,程序会说“重新启动应用程序?”并且用户单击"is",然后 jar 关闭并自行重新启动。 最佳答案 需要重新启动应用程序是糟糕设计的标志。
过去两年我一直有这个问题。 我有一个从 Internet 下载的 .jar 文件。它应该是一个魔方计时器。 当我双击这个 .jar 文件时,没有任何反应。如果我将 .jar 文件设置为使用 java.
我正在尝试在多项目Gradle构建中创建一个胖jar文件,如下所示: root +-- project1 +-- project2 project1提供了基本功能,然后project2将其用于
我需要 Maven 的配置,其中项目内的所有库都以 jar 格式保存在最终的 jar 中...所以我需要在最终的 jar 中包含 jar。为此我只能使用maven。我已经尝试过像 one-jar 这样
JAR、Fat JAR 和 Executable JAR 之间有什么区别?它们是如何从命令行和 gradle.build 任务创建的(如果是 gradle 项目)? 除了上面提到的以外,还有其他的JA
我阅读了很多构建具有依赖项的可执行 jar 的解决方案(maven 阴影插件、maven 依赖项插件、maven 程序集插件)和所有这些插件解压依赖项 jar 并将它们重新打包到可执行 jar 中。唯
我想问一下java命令中-jar选项前后传递参数有什么区别。考虑 $SOME_ENV_VAR=-Dinstance=qa 最佳答案 取决于SOME_ENV_VAR的内容;假设它包含有效的命令行参数,例
我试图了解如何打包用 Clojure 编写的命令行应用程序进行分发。我不希望用户不得不使用 java -jar myproject.jar arg1 arg2运行程序。 PHP 有一个叫做“Phar”
在 gradle 中 - 如何将 jar 嵌入到 lib 中的构建输出 jar 中目录(特别是 lib/enttoolkit.jar 和 lib/mail.jar)? 最佳答案 如果您的项目中的一个目
查看 Google gson 2.8.5 ,我看到这里分发了几个 jar https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.5/
我正在将 jar 文件和一个主类合并到一个 jar 中。问题是我的主类使用这些 jar ,如果它在一个 jar 中,它就会抛出找不到类定义。如何让类(class)看到 jar 里的 jar ? 最佳答
我正在使用 Maven 进行开发。我有一个要求,我想在我的项目 jar 中包含一些第三方 jar 并排除 pom.xml 文件中指定的其他 jar。下面是我的 pom.xml 文件。 4.0.0 c
我正在开发一个 GUI 应用程序,宁愿只分发一个 jar 而不是多个。 你能用 list 来控制它吗? 最佳答案 另一种选择是使用自定义类加载器,例如这个: http://one-jar.source
我看到许多 Java 包都有 api、impl 和 bundle jar(name-api.jar、name-impl.jar、name-bundle.jar)。有人可以解释这些是什么意思吗?应用程序
我是一名优秀的程序员,十分优秀!