我正在构建一个代表我的应用用户响应电子邮件的应用。这些电子邮件会发送给我的用户并被我的应用拦截,以自动回复客户。这些电子邮件来自第三方,包含品牌格式。
我的PHP应用程序获取电子邮件的完整HTML,将其存储在MySQL表中,然后创建回复并将HTML附加到电子邮件底部的<hr/>
下。
这有效,它看起来像是一个回复(这是我的意图(虽然我会构建一些标题详细信息,使其看起来更合法,就好像它在Outlook中回复或类似))。
然而,我的问题是这种方法会损害回复格式 - 它似乎采用了来自回复底部原始电子邮件HTML的行高等样式。
因此,我的问题是,如何创建回复电子邮件?做我正在做的事情并更好地设计我的回复,或者我是否需要使用完整的原始文件,而不仅仅是HTML输出。是否可以在电子邮件中使用HTML标签?
如果答案是这样的话,我会喜欢它:从电子邮件中提取X并使用opensource Y库构建回复:)
编辑:按要求发送电子邮件示例
此第三方电子邮件包含一个如下所示的头部:
<html>
<head>
<style type='text/css'>
body{font-family: arial,helvetica,sans-serif;}
a{color: #06c;}
p{margin:0;}
#message{width:600px;margin:0 auto;}
.legal{margin-top:2em;}
.footer{margin-top:1em;padding:5px;background:#999999;color:#fff;}
.footer a{color:#fff;}
.senderName,.label{font-weight:bold;}
.link,.label,.hint{margin-top: 20px;}
.header-separator{height:4px;background-color:#e4002b;width:100%;margin-top:17px;}
tr,td{vertical-align:top;text-align:left;}
img{border:0;}
${css!""}
</style>
</head>
<body>
<div id='message'>
...
我的用户电子邮件模板(内置于TinyMCE)将如下所示:
<p><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 14pt;">Dear [name],</span></p>
<p><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 14pt;">Thanks for your enquiry
...
当我将电子邮件发送到电子邮件服务时,它很简单:
$emailreply = $userTemplate . '<hr/>' . $originalEnquiry;
当然,这还不够好?此外,这是我提到的电子邮件高度受影响的电子邮件 - 因此我的用户模板未按设计发送。
答案 0 :(得分:0)
在第三方电子邮件中有点罕见的情况,当HTML电子邮件开发的常规程序是内联设置所有样式时,已将 final LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getApplicationContext());
final Intent intent = new Intent("SAMPLE_ACTION");
lbm.sendBroadcast(intent);
标记分开。
有点逻辑这些样式(来自<style >
标签会损坏您的新代码,这里最好的选择是使所有样式(来自第三方电子邮件)内联,因此,您可以删除<style >
代码,同时保持两个电子邮件样式分开。
正如您所说 PHP App ,我认为您可以使用以下某些功能:
并确保,如果上面选择的某个工具未删除<style >
标记,请自行删除(您可以使用正则表达式执行此操作)。
希望这会有所帮助,祝你好运