【问题标题】:Change the design of email body更改电子邮件正文的设计
【发布时间】:2016-09-22 07:38:55
【问题描述】:

我在 email.js 中编写了发送邮件的代码如下:

Accounts.emailTemplates.siteName = "xyz";
Accounts.emailTemplates.from     = "xyz <admin@xyz.com>";

Accounts.emailTemplates.verifyEmail = {
    subject() {
        return "[xyz] Verify Your Email Address";
    }
};

Accounts.emailTemplates.verifyEmail.text = function( user, url) {
    let emailAddress   = user.emails[0].address,
    urlWithoutHash = url.replace( '', '' ),
    supportEmail   = "support@xyz.com",
    emailBody      = `To verify your email address (${emailAddress}) visit the following link:\n\n${urlWithoutHash}\n\n If you did not request this verification, please ignore this email. If you feel something is wrong, please contact our support team: ${supportEmail}.`;
    return emailBody;   
}

电子邮件正在运行,我只想更改设计。如何设计邮件正文?我可以在电子邮件正文中插入 html 代码,以便进行适当的响应式电子邮件设计吗?我已经尝试了很多方法。谁能帮帮我?

我已经使用 mail gun API 来发送电子邮件,无论如何都可以使用模板。

我尝试过使用 grunt 电子邮件模板,但我很惊讶我需要帮助才能完成我的任务。

【问题讨论】:

    标签: email meteor mailgun


    【解决方案1】:

    您可以使用SSR 包创建电子邮件模板。

    Accounts.emailTemplates.verifyEmail.html = function (user, url) {
           SSR.compileTemplate( 'registartionEmail', Assets.getText( 'email_templates/registration_confirm.html' ) );
           var emailData = {
                  x: y;
           };
           return SSR.render( 'registartionEmail', emailData );
    };
    

    【讨论】:

    • 验证电子邮件已完成并且工作成功,感谢您的帮助和......通过mailgun api联系并忘记密码电子邮件......我应该如何处理请你帮我..out跨度>
    • 告诉我有什么可以帮助你的。
    • 我已经按照以下方式创建了忘记密码的助手和事件
    • 您只需将 verifyEmail 更改为 resetPassword,例如:Accounts.emailTemplates.resetPassword.html 或 .subject。其余部分保持不变。
    【解决方案2】:

    要在服务器上处理将模板转换为原始 HTML 的过程,您需要在应用程序中添加一个名为 meteorhacks:ssr 的包。安装软件包后,您可以将纯 HTML 文件存储在 /private 目录中,然后在稍后转换它们,传递任何数据以替换过程中的 {{name}} 等车把助手。

    例如,这是我在新用户注册时用来发送欢迎电子邮件的一些代码:

    import { SSR } from 'meteor/meteorhacks:ssr';
    
    const getHTMLForEmail = (templateName, data) => {
      SSR.compileTemplate(templateName, Assets.getText(`email/templates/${templateName}.html`));
      return SSR.render(templateName, data);
    };
    
    const sendEmail = (emailAddress, html) => {
      if (emailAddress.includes('@')) {
        const emailData = {
          to: emailAddress,
          from: 'Test Email <hello@test.io>',
          subject: 'Welcome aboard, team matey!',
          html,
        };
    
        Meteor.defer(() => Email.send(emailData));
      }
    };
    
    export const sendWelcomeEmail = (user, profile) => {
      let email;
      if (user.services.facebook) {
        email = user.services.facebook.email;
      } else if (user.services.google) {
        email = user.services.google.email;
      }
    
      const data = {
        email,
        name: profile && profile.name ? profile.name : '',
        url: 'www.google.com',
      };
      const html = getHTMLForEmail( 'welcome-email', data );
    
      sendEmail(data.email, html);
    };
    

    您会发现 Meteor Chef 的以下两篇文章非常有用(还显示了 html 电子邮件模板的外观):

    1. Using the email package
    2. Sign up with email verification

    【讨论】:

    • 非常感谢......现在我清楚地知道如何处理这个......谢谢!
    • 我已经提到了您提供的链接,这些链接对我很有帮助方法你能帮帮我吗..out
    • 我建议你为此创建一个新问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 2017-11-01
    • 2018-04-16
    • 2022-11-26
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    相关资源
    最近更新 更多