java发送html格式邮件是不是能有js
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java发送html格式邮件是不是能有js相关的知识,希望对你有一定的参考价值。
1、如果是想用html做发送的内容及布局的话,那就不要用js
2、如果在发送邮件的时候将HTML文件作为附件的话,那是可以有js的
Java发送邮件需要用到JavaMail,先到Oracle官网上下载好最新版本的JavaMail(刚才看了一下,最新是1.5.3),把下载的这个jar文件放到classpath里(如果是Web项目,就放到WEB-INF/lib目录下。
JavaMail主要支持发送纯文本的和html格式的邮件。
java发送html格式邮件的具体实现:
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import javax.mail.Session;
import javax.mail.MessagingException;
import javax.mail.Transport;
public class SendHtmlMail
public static void sendMessage(String smtpHost,
String from, String to,
String subject, String messageText)
throws MessagingException,java.io.UnsupportedEncodingException
// Step 1: Configure the mail session
System.out.println("Configuring mail session for: " + smtpHost);
java.util.Properties props = new java.util.Properties();
props.setProperty("mail.smtp.auth", "true");//指定是否需要SMTP验证
props.setProperty("mail.smtp.host", smtpHost);//指定SMTP服务器
props.put("mail.transport.protocol", "smtp");
Session mailSession = Session.getDefaultInstance(props);
mailSession.setDebug(true);//是否在控制台显示debug信息
// Step 2: Construct the message
System.out.println("Constructing message - from=" + from + " to=" + to);
InternetAddress fromAddress = new InternetAddress(from);
InternetAddress toAddress = new InternetAddress(to);
MimeMessage testMessage = new MimeMessage(mailSession);
testMessage.setFrom(fromAddress);
testMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddress);
testMessage.setSentDate(new java.util.Date());
testMessage.setSubject(MimeUtility.encodeText(subject,"gb2312","B"));
testMessage.setContent(messageText, "text/html;charset=gb2312");
System.out.println("Message constructed");
// Step 3: Now send the message
Transport transport = mailSession.getTransport("smtp");
transport.connect(smtpHost, "webmaster", "password");
transport.sendMessage(testMessage, testMessage.getAllRecipients());
transport.close();
System.out.println("Message sent!");
public static void main(String[] args)
String smtpHost = "localhost";
String from = "webmaster@mymail.com";
String to = "mfc42d@sohu.com";
String subject = "html邮件测试"; //subject javamail自动转码
StringBuffer theMessage = new StringBuffer();
theMessage.append("<h2><font color=red>这倒霉孩子</font></h2>");
theMessage.append("<hr>");
theMessage.append("<i>年年失望年年望</i>");
try
SendHtmlMail.sendMessage(smtpHost, from, to, subject, theMessage.toString());
catch (javax.mail.MessagingException exc)
exc.printStackTrace();
catch (java.io.UnsupportedEncodingException exc)
exc.printStackTrace();
参考技术A 要带js的,如果是想用HTML做发送的内容及布局的话。
如果你是在发送邮件的时候将HTML文件作为附件的话,那就不要用js,那是可以有js的
这些天发送纯 HTML 电子邮件是不是明智?
【中文标题】这些天发送纯 HTML 电子邮件是不是明智?【英文标题】:Is it sensible to send HTML-only email these days?这些天发送纯 HTML 电子邮件是否明智? 【发布时间】:2011-08-12 19:57:31 【问题描述】:我希望我的网络应用程序以 HTML 格式发送某些邮件以包含产品图片。
我当然也可以提供文本/纯文本替代方案,但在当今时代,值得付出努力吗?是否有不支持 text/html 的常见邮件客户端,是否有很多人出于某些原因(我认为垃圾邮件、带宽)将其关闭,是否还有其他原因,例如降低被归类为垃圾邮件的风险?
我可以提出理论,但如果有人有统计数据、经验或其他见解来支持或反对仅使用 text/html,我会很感兴趣。
【问题讨论】:
我发现this article over at MailChimp 也主张使用文本。主要是因为垃圾邮件过滤器。 顺便说一句:MailChimp 似乎不再提及这一点。 【参考方案1】:我发现 90% 的电子邮件是在支持 html 的电子邮件查看器中查看的。如果您选择不包含纯文本选项,您可能会失去 10% 的受众。另一方面,精心设计的 html 电子邮件可能会超过 10% 的损失,因此值得权衡。
我正在努力让 Hostgator 与 PHP 一起工作,所以我想我将专注于低悬的果实(查看 html 电子邮件的 90% 的人),而不是担心 10%。与 IE 7 一样,您无法再支持所有平台。
【讨论】:
我正在寻找这样的统计数据 - 你还记得你在哪里找到的吗?【参考方案2】:两者都提供。电子邮件中的 HTML 存在许多安全问题,因此那些有安全意识的人倾向于禁用 HTML 电子邮件以支持纯文本。此外,对于文本/纯数据而不是 HTML,回复引用约定相当完善,这使得纯 HTML 邮件线程中有意义的讨论变得丑陋。
由于您确实可以控制消息的内容,因此请使纯文本版本可读。一些 MUA 倾向于自动创建 text/plain 部分,并且在这样做时做得很糟糕。因此,如果您的消息是针对客户的,请确保 text/plain 部分的格式正确,以免疏远他们。
【讨论】:
【参考方案3】:你最好同时发送,因为:
它有助于降低垃圾邮件分数,如果您的文本版本与您的 HTML 版本具有相同的文本和链接,则更是如此。在 Outlook 上尤其如此,没有文本版本几乎可以保证它会进入垃圾文件夹。 很多人确实在客户端请求文本版本。一些旧的黑莓默认使用此设置,Windows Mobile【讨论】:
【参考方案4】:我认为只有 HTML 是可以的,但它应该是清晰的,无需下载图像。默认情况下,Outlook 和 Gmail 都会阻止图像以阻止跟踪和病毒。
【讨论】:
【参考方案5】:你应该总是有一个 text/plain 的替代品。我没有统计数据,但我敢肯定很多人禁用 HTML 电子邮件。包括我,因为我对所有那些 product images
和毫无意义的花哨的新闻通讯感到恼火。
【讨论】:
在这种情况下,这是一封“已保存的搜索”电子邮件,客户很可能需要图片。但是,如果他们已经关闭了 HTML 电子邮件,那当然就没那么重要了。 @Henrik 是的。他们(我们)不会因为你而关闭它,但最终它被关闭了:)。【参考方案6】:我相信诸如 iOS 邮件之类的客户端会在用户打开邮件之前使用 text/plain 版本来预览前几行。
【讨论】:
我测试过,2015 年 2 月 OS X Mail.app、Gmail 网站、Google 的 Gmail 和 Inbox Android 应用以及 Dropbox 的 Mailbox Android 应用都使用 HTML 版本(忽略文本版本)显示电子邮件列表中的第一行。 一时间我以为我之前的测试错了,突然看到实际消息中没有显示的预览文本。但是SurveyMonkey is being smart with white text on a white background,仅在查看消息源或选择消息中的文本时可见......(虽然在这种情况下纯文本“预览”和HTML“预览”是相同的文本,“使用此区域提供电子邮件内容的简短预告。此处的文本将显示在某些电子邮件客户端的预览区域中。”,在我两周前的测试中并非如此。)【参考方案7】:Google 默认发送 HTML 电子邮件,这包括 Google Apps for Business 和 Google Apps for Educations。因此,数以百万计的 Gmail 用户发送和接收 HTML 电子邮件,而不是纯文本电子邮件。不确定是否有比这更好的统计数据。
【讨论】:
以上是关于java发送html格式邮件是不是能有js的主要内容,如果未能解决你的问题,请参考以下文章