2012-09-26 41 views
0

(我使用C#,VB.NET不)JMail的发送HTML格式的电子邮件,图像变量未提交

Set jmail = Server.CreateObject("JMail.Message") 

jmail.AddRecipient "[email protected]", "Mr.Example" 
jmail.From = "[email protected]" 

jmail.Subject = "Here's some graphics!" 
jmail.Body = "A nice picture if you can read HTML-mail." 

' The return value of AddAttachment is used as a 
' reference to the image in the HTMLBody. 
contentId = jmail.AddAttachment("c:\myCoolPicture.gif") 

' As only HTML formatted emails can contain inline images 
' we use HTMLBody and appendHTML 
jmail.HTMLBody = "<html><body><font color=""red"">Hi, here is a nice picture:</font><br>" 
jmail.appendHTML "<img src=""cid:" & contentId & """>" 
jmail.appendHTML "<br><br>good one huh?</body></html>" 

' But as not all mailreaders are capable of showing HTML emails 
' we will also add a standard text body 
jmail.Body = "Too bad you can't read HTML-mail." 
jmail.appendText " There would have been a nice picture for you" 

jmail.Send("mailserver.mydomain.com") 

这是我能找到通过JMAIL发送HTML电子邮件的唯一例子。

但是,正如你在这里看到的,这是一个图像文件。

我的情况是我将生成一个图像,并直接发送它而不保存为一个文件。

那么为此我可以做些什么吗? 我真的不想保存它,然后把它然后将其删除.....

非常感谢

+0

也许使用流,如下所示:[System.Drawing.Image流C#](http://stackoverflow.com/questions/1668469/system-drawing-image-to-stream-c-sharp)? – Tim

+0

@Tim使用.NET System.NET.Mail namespce,但正如我明确指出的那样,我正在使用jmail。 – Franva

+0

实际上答案是使用System.Drawing.Image和System.IO - 它与电子邮件无关,只是一种获取图像而不在文件中的方式,除非我错过了某些东西? – Tim

回答

0

似乎没有别的选择,只能将其保存为一个文件,并将其发送,然后删除它....

我会离开这个职位再看几天,看看是否有解决此问题的可能办法。

1

有一种方法...使用嵌入的base64 CSS3相似图片:

.myImage {background: url(data:image/gif;base64,R0lGODlhBgASALM...)} 

和参考本在你的HTML代码作为一个DIV标签。根本没有文件需要保存。

相关问题