假设我需要通过客户详细信息和订单详细信息向客户发送邮件.我在html文件中有模板html数据.客户数据存在,并且订单详细信息也存在于同一个html模板文件中.我的HTML看起来像
<html>
<body>
Hi {FirstName} {LastName},
Here are your orders:
{foreach Orders}
Order ID {OrderID} Quantity : {Qty} <strong>{Price}</strong>.
{end}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
现在我想用{}填充所有带有实际值的示例关键字,并迭代并填写订单.
我搜索谷歌,发现微软提供了一个名为MailDefinition的类, 通过它我们可以动态生成邮件正文.我有一个示例代码也喜欢
MailDefinition md = new MailDefinition();
md.From = "test@domain.com";
md.IsBodyHtml = true;
md.Subject = "Test of MailDefinition";
ListDictionary replacements = new ListDictionary();
replacements.Add("<%Name%>", "Martin");
replacements.Add("<%Country%>", "Denmark");
string body = "
Hello <%Name%> You're from <%Country%>.";
MailMessage msg = md.CreateMailMessage("you@anywhere.com", replacements, body, new System.Web.UI.Control());
Run Code Online (Sandbox Code Playgroud)
通过上面的代码,我们可以用实际值替换伪值,但我不知道如何迭代Orders详细信息并填充订单数据.
所以,如果可以使用MailDefinition类,那么请指导我如何迭代循环并生成订单详细信息的代码.
我正在寻找基于模板创建电子邮件,主要是HTML - 我真的很喜欢这样做:
我见过这个:http: //www.bitethebullet.co.uk/EmailTemplateFramework/tabid/58/Default.aspx
从堆栈溢出搜索,我明白nVelocity可能是另一种选择?但我找不到任何例子来做我想做的事......
还有其他建议吗?
如何在没有测试数据的 SendGrid 动态模板中获取版权 \xc2\xa9 {{YEAR}} 的当前年份?
\n我正在寻找类似的东西,{{ formateDate new Date YYYY }}
因为我们希望年份自动更新,所以如果可能的话我们不能依赖测试数据?
我使用Div标签为电子邮件创建了一个HTML模板.
它在Gmail,雅虎上运行良好.
但Div风格不适用于Outlook.
以下是我使用过的代码.
<div style="margin:auto;padding:auto;background-color:#FFFFFF;width:600px;border:0px;">
Testing Email
</div>
Run Code Online (Sandbox Code Playgroud)
我设置div宽度600px也使边距和填充自动.这样它就会显示在屏幕的中央.
但它不像那样工作.
Gmail,雅虎在屏幕中央显示电子邮件
请建议我如何重新解决这个问题.
我有一个asp.net Web应用程序,它在注册过程中向用户发送几封电子邮件.现在我让它们与代码内联,但我想把它们放在一个中心位置,我可以编辑它们而无需进入VS.
存储这些HTML模板的最佳位置/格式是什么?
有没有办法在 Outlook.com 中禁用深色模式并强制我的电子邮件模板的原始样式呈现为浅色/正常模式下显示的效果?
我有一个WordPress/WooCommerce网站正在运行,我想编辑管理员在收到新订单时收到的电子邮件,以显示产品的缩略图.我将模板复制到我的主题目录 - /themes/mytheme/woocommerce/emails/admin-new-order.php
:
<?php echo $order->email_order_items_table( true, false, true, true, array( 150, 150 ) ); ?>
Run Code Online (Sandbox Code Playgroud)
这是来自woocommerce/classes/class-wc-order.php
文件的代码:
/**
* Output items for display in html emails.
*
* @access public
* @param bool $show_download_links (default: false)
* @param bool $show_sku (default: false)
* @param bool $show_purchase_note (default: false)
* @param bool $show_image (default: false)
* @param array $image_size (default: array( 32, 32 )
* @param bool plain text
* @return string
*/
public function email_order_items_table( $show_download_links = …
Run Code Online (Sandbox Code Playgroud) 我一直在 Gmail 中调试和测试电子邮件模板。我使用 Zurb Foundation 作为基础(我也用它来内联我的大部分 CSS)。它在任何地方看起来都很好,但是 Gmail 完全忽略了我的媒体查询(soblue 类是测试它是网格还是媒体查询)。
我研究了 Gmail 媒体查询支持(它应该适用于 iOS)并且我还验证了我的 CSS。这是 style 标签中的 CSS:
@media only screen and (max-width: 596px) {
.soblue {
color: #0000FF !important;
}
.small-float-center {
margin: 0 auto !important; float: none !important; text-align: center !important;
}
.small-text-center {
text-align: center !important;
}
.small-text-left {
text-align: left !important;
}
.small-text-right {
text-align: right !important;
}
table.body img {
width: auto; height: auto;
}
table.body center {
min-width: 0 !important;
}
table.body .container { …
Run Code Online (Sandbox Code Playgroud) 我一直在寻找这个时代的明确解决方案,用于从嵌入式源文件发送带有电子邮件模板的电子邮件,但我还没有找到明确的答案.
Razor视图非常适合用作电子邮件的模板.
我正在尝试创建一个类库作为包,其中包含每个视图的视图(cshtml文件)和模型.该类库还将具有EmailSender服务.
然后,将在Web应用程序中引用该类库以发送电子邮件.该库显然可以在其他项目中重复使用.
EmailSender服务将为每种电子邮件类型提供方法.Web应用程序将传递模型,类库将准备电子邮件内容(将模型解析为视图)并返回字符串内容.该字符串内容将作为htmlbody电子邮件发送.
我看过这个RazorLight 库.这似乎还没有完成或更新核心2.0.
我遇到的另一个解决方案是在这里.此方法的问题是电子邮件模板不包含模型属性.基本上,模板包含{0},{1}等,格式用于将模型数据解析为模板.如果模板中有很多参数,那么很难记住哪个参数是哪个.
我刚刚看到这篇文章ASP.NET Core 2.1.0-preview1:类库中的Razor UI
它告诉Core 2.1.0将允许在类库中添加视图.这会是解决方案吗?
或者你有更好的想法来实现这一目标吗?
你好,我正在尝试使用nodemailer的外部渲染器功能来使用html模板。因此,我为我的模板引擎导入 nodemailer 和 EmailTemplates,该引擎将是 pug。我使用适当的凭据创建我的传输器。
要创建模板基本发送器函数,我必须使用传输器的 templateSender 函数,该函数显然不存在,因为我收到未定义的函数错误。
此过程的文档链接: https: //community.nodemailer.com/2-0-0-beta/templated/
有人遇到过这个问题吗?也许这是一个问题,如果是的话,我会提交一个问题,但我更喜欢检查我的代码是否不是实际问题。
import nodemailer from "nodemailer";
import EmailTemplate from "email-templates";
export default async function(userMail, typeOfMail, link) {
const transporter = nodemailer.createTransport({
port: process.env.SMTP_PORT,
host: process.env.SMTP_SERVER_NAME,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASS
}
});
console.log(transporter.templateSender)
const sendAccountValidation = transporter.templateSender(
new EmailTemplate("../email_templates/account_validation"),
{
from: process.env.SMTP_USER
}
);
sendPwdReminder(
{
to: "dest@email.com",
subject: "subject"
},
function(err, info) {
if (err) {
console.log("Error");
} else {
console.log("Password reminder sent");
}
}
); …
Run Code Online (Sandbox Code Playgroud) email-templates ×10
css ×3
html ×3
c# ×2
.net ×1
asp.net ×1
asp.net-core ×1
date ×1
dynamic ×1
email ×1
frontend ×1
gmail ×1
ios ×1
javascript ×1
node.js ×1
nodemailer ×1
outlook-2007 ×1
razor ×1
sendgrid ×1
templates ×1
woocommerce ×1
wordpress ×1