【问题标题】:HTML inside an Email in DELPHI [closed]DELPHI中电子邮件中的HTML [关闭]
【发布时间】:2013-04-30 15:07:28
【问题描述】:

我试图通过电子邮件直接发送 HTML 模板,而不需要复制粘贴页面,我的意思是只放置 HTML 代码并将其作为 HTML 页面而不是原始文本发送,主要原因是发送此 HTML 模板通过德尔福。

问题是我们只从 HTML 中获取文本,我的意思是这部分:

<p>Hola chicos!</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

我无法让它显示的是这些行:

<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" background="http://www.feelmalagahostel.com/emails/content.jpg">
<table width="800" border="0" cellspacing="0" cellpadding="0" background="http://www.feelmalagahostel.com/emails/header_feel_summer.jpg" style="background-position:top; background-repeat:no-repeat;">
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" background="http://www.feelmalagahostel.com/emails/footer.jpg" style="background-position:bottom; background-repeat:no-repeat;">

它只是省略了它们,显示标签图像而不是背景图像。

所以这就是我如何在电子邮件中显示的问题?并且需要背景图片。

HTML 代码:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<body marginheight="0" marginwidth="0">
    <table width="800" border="0" align="center" cellpadding="0" cellspacing="0" background="http://www.feelmalagahostel.com/emails/content.jpg">
        <tr>
            <td valign="top">
                <table width="800" border="0" cellspacing="0" cellpadding="0" background="http://www.feelmalagahostel.com/emails/header_feel_summer.jpg" style="background-position:top; background-repeat:no-repeat;">
                    <tr>
                        <td align="center" valign="top">
                            <!--header-->
                            <table width="730" border="0" align="center" cellpadding="0" cellspacing="0">
                                <tr>
                                    <td height="230">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td height="100" align="right" valign="top">
                                        <table border="0" cellspacing="0" cellpadding="0">
                                            <tr></tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr>
                                    <td height="10">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td height="61" align="right">
                                        <img src="https://www.auto21.ca/userImages/images/test%20drive%20logo%20FINAL.jpg" width="347" height="61" />
                                    </td>
                                </tr>
                            </table>
                            <!--end header-->
                            <br/>
                            <br/>
                            <!--content-->
                            <table width="600" border="0" cellspacing="0" cellpadding="0" align="center">
                                <tr>
                                    <td valign="top"> <font face="Arial, Helvetica, sans-serif" size="2">
    <p>Hola chicos!</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci </p>
    <p>velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
    </font> 
                                    </td>
                                </tr>
                            </table>
                            <!--end content-->
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
    <table width="800" border="0" align="center" cellpadding="0" cellspacing="0" background="http://www.feelmalagahostel.com/emails/footer.jpg" style="background-position:bottom; background-repeat:no-repeat;">
        <tr>
            <td valign="top">
                <!--footer-->
                <table width="600" border="0" cellspacing="0" cellpadding="0" align="center">
                    <tr>
                        <td height="300" valign="top"></td>
                    </tr>
                    <tr height="250">
                        <td></td>
                    </tr>
                </table>
                <!--end footer-->
            </td>
        </tr>
    </table>
</body>

</html>

【问题讨论】:

  • 还有什么问题?只是do it ;-)
  • 我在这里没有看到任何问题,只是告诉我们你想做点什么。
  • 我认为他想发送 HTML AS IS,即作为文本,而不是作为 HTML。在这种情况下,使用 JachGate 提供的代码,您可以将字符串添加到电子邮件的 text 属性,而不是其 HTML 属性。

标签: html delphi email


【解决方案1】:

使用 Delphi 发送电子邮件的方法有很多。

我最喜欢通过 SMTP 类 TIdSMTP 来实现,它是 INDY 项目 的一部分,它既灵活又强大。

要发送带有 HTML 内容的邮件,请使用辅助类 TIdMessageBuilderHtml,在我看来,这不仅使事情变得更简单,而且留下了更优雅和易于理解的代码。

发送此类电子邮件的相关部分是:

var
  Builder: TIdMessageBuilderHtml;
  Msg: TIdMessage;
  SMTP: TIdSMTP;
begin
  Builder := TIdMessageBuilderHtml.Create;
  try
    Builder.Html.Add('<HTML><HEAD><TITLE>An Image for you</TITLE></HEAD><BODY>');
    Builder.Html.Add('<p><strong>An image for you</strong></p>');
    Builder.Html.Add('<div>');
    Builder.Html.Add('  <img border="0" src="cid:theimage" >');
    Builder.Html.Add('</div>');
    Builder.PlainText.Add('This mail have an image for you. '
      + 'Use a HTML viewer to see it');
    Builder.HtmlFiles.Add(ImageFileName, 'theimage');
    Msg := Builder.NewMessage();
    try
      Msg.Recipients.EMailAddresses := eRecipients.Text;
      Msg.From.Name := eFromName.Text;
      Msg.From.Address := eFromEmail.Text;
      Msg.Subject := 'A image for you';
      SMTP := TIdSMTP.Create;
      try
        SMTP.Host := eSMTPHost.Text;
        SMTP.Username := eSMTPUser.Text;
        SMTP.Password := eSMTPPass.Text;
        SMTP.Connect;
        try
          SMTP.Send(Msg);
        finally
          SMTP.Disconnect;
        end;
        SMTP.Send(Msg);
      finally
        SMTP.Free;
      end;
    finally
      Msg.Free;
    end;
  finally
    Builder.Free;
  end;
end;

【讨论】:

  • 这是关于这个东西的第一个简单例子。我尝试过的所有其他示例和许多麻烦,这一个刚刚奏效!
  • 抱歉,我在 Stack Overflow 上用西班牙语找到了你,第 51 区提案...你能帮帮忙吗:stackoverflow.com/posts/28330370/revisions
  • @apaul34208,没问题,我已经重新编辑了问题并给OP留言。我希望它有所帮助。
猜你喜欢
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
  • 2016-11-22
  • 2010-11-04
  • 2011-11-12
相关资源
最近更新 更多