【问题标题】:in line css is not working for HTML in email using java内联css不适用于使用java的电子邮件中的HTML
【发布时间】:2015-08-13 01:16:49
【问题描述】:

我正在尝试应用 HTML 中的一些样式。比如定位内容等。

我可以使用防弹网站生成的自动代码在图像上叠加文字。但不能在文本上应用样式。

我在电子邮件中有以下 HTML 的 sn-p:

这是用于创建电子邮件的服务器代码:

MimeMultipart mimeMultipart = new MimeMultipart("related");
MimeBodyPart textBodyPart = new MimeBodyPart();
mimeMultipart = new MimeMultipart("related");
String cid = ContentIdGenerator.getContentId();
textBodyPart.setText(messageBody, "US-ASCII", "html");
mimeMultipart.addBodyPart(textBodyPart);
imagePart.attachFile(file);

imagePart.setContentID("<" + cid + ">");
mimeMultipart.addBodyPart(imagePart);

 msg.setContent(mimeMultipart);
  Transport.send(msg);

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns:v="urn:schemas-microsoft-com:vml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
	</head>
	<body>
		<table cellpadding="0" cellspacing="0" border="0" width="100%">
			<tr>
				<td background="cid:random number.net"
					style="background-repeat:no-repeat;" valign="top">      <!--[if gte mso 9]><v:rect xmlns:v='urn:schemas-microsoft-com:vml' fill='true' 
						stroke='false' style='mso-width-percent:1000;'> <v:fill type='frame' src='cid:ransomnumbernet' 
						style='background-repeat:no-repeat;' /><v:textbox style='mso-fit-shape-to-text:true' 
						inset='0,0,0,0'><![endif] -->
					<div style="margin-left: 2cm;">
						<br>
							<br>
								<br>
									<br>
										<br>
											<br>
												<br>
													<br>
														<br>
															<br>
																<br>
																	<br>
																		<br>
																			<br>
																				<br>
																					<p>Thank you for your order. Your order information
																						is:</p>
																					<br>
																						<table width="50%" colspan="2">
																							<tbody>
																								<tr>
																									<td width="30%" align="left">order</td>
																									<td width="70%" align="left">XXXX</td>
																								</tr>
																								<tr>
																								
																							</tbody>
																						</table>
																						<table width="50%" colspan="2">
																							<tbody>
																								<tr>
																									<td width="30%" align="left">Name</td>
																									<td width="70%" align="left">temp</td>
																								</tr>
																								<tr>
																									<td width="30%" align="left">Phone</td>
																									<td width="70%" align="left">555-555-5555</td>
																								</tr>
																							</tbody>
																						</table>
					</div><!--[if gte mso 9]> </v:textbox></v:rect><![endif] -->
				</td>
			</tr>
		</table>
	</body>
</html>

但样式不适用于电子邮件。

提前感谢您的宝贵时间。

【问题讨论】:

  • 你能重新格式化你的代码吗?一行有很多,很难阅读
  • 请注意,背景的图像来源类似于cid: ...。看起来有些工具正在为您输出 html。在电子邮件中,您需要将图像作为邮件的一部分包含在 multipart/mime 设置中。请参阅注明的副本。
  • @Rick 代码重新格式化。
  • @PaulProgrammer 是的,我已经使用 cid 包含了图像,我可以在发送的电子邮件中看到图像,上面有文本,但是我不能使用内联 css 或通过在中声明

标签: java html css email


【解决方案1】:

关闭你的&lt;head&gt;标签

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
   </head>

【讨论】:

  • 我已经添加了带有元信息的头部和身体标签,但在使用 Outlook 10 进行测试时仍然看不到有效的样式。
猜你喜欢
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多