邮件发送图片
请问用.NET 发送邮件,发送图片.一打开邮箱就可以看到一张大图片
图片并不是以附件的形式发送.
因为以附件形式发送的话,
打开邮件只能看到小图,需要再点击一下
类似 foxMail 里面的插入图片.
需要怎么写 --------------------编程问答--------------------
<img src="cid:123"> 使用cid:标记,表明图形是放在一个叫123的附件中的
然后加入一个附件,指定为
content-type: image/gif
content-id: <123> 即上面那个123
content-disposition: inline; filename="sdfsdf" filename是随便指定的
content-transfer-encodinf: base64 --------------------编程问答-------------------- 还有一个可供参考
http://www.codeproject.com/KB/IP/Pop3MimeClient.aspx --------------------编程问答-------------------- 还有就是要怎么发送HTML格式的邮件
下面是我用HTML格式发送的代码
为什么QQ收到后是显示 源码
而163却收不到
sendFrom = New MailAddress(Me.TxtSendForm.Text)
Subject = Me.TxtMailMotif.Text
If Subject.Trim = "" Then Subject = "无标题"
Dim result As DialogResult
If Subject = "" Then
result = MessageBox.Show("邮件没有添加标题,不要标题吗?", _
"提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
End If
'判断该邮件是否具有标题
If result = Windows.Forms.DialogResult.No Then Exit Sub
'如果选择要添加标题,则退出过程等待添加标题
For Each Lw As ListViewItem In lstMailList.Items
Dim L As MailItemClass = Lw
Try
sendTo = New MailAddress(L.Mail)
message = New MailMessage(sendFrom, sendTo)
L.Status = "发送中..."
LblHint.Text = "正在发送邮件至:" & L.Mail
'message.To.Add(sendTo)
'message.From = sendFrom '设置邮件的发送目的地址和原址
message.BodyEncoding = System.Text.Encoding.UTF8 '选择邮件发送的文本编码
message.Subject = Subject '设置邮件发送标题
HtmlStringBuilder.Append(" </head>")
HtmlStringBuilder.Append(" <body>")
HtmlStringBuilder.Append("<table width=""600"" border=""0"" align=""center"" cellpadding=""0"" cellspacing=""0"" bordercolor=""#FFFFFF"">")
HtmlStringBuilder.Append(" <tr>")
HtmlStringBuilder.Append(" <td colspan=""2""><img src=""http://www.linguaphonenet.com/edm/08-Jan/banner.jpg"" alt=""lady"" width=""600""></td>")
HtmlStringBuilder.Append("</tr>")
HtmlStringBuilder.Append("</table>")
HtmlStringBuilder.Append("</body>")
HtmlStringBuilder.Append("</html>")
message.Body = HtmlStringBuilder.tostring '获取邮件发送的内容
If Me.TxtAttachs.Text = "" Then
Else
Attachs = New Net.Mail.Attachment(Me.TxtAttachs.Text)
message.Attachments.Add(Attachs) '判断是否具有附件,如果有则连带附件发送
End If
Select Case Me.ComProity.SelectedIndex '选择并设置邮件发送的优先级
Case 0
proity = MailPriority.Normal
Case 1
proity = MailPriority.High
Case 2
proity = MailPriority.Low
End Select
message.Priority = proity
message.IsBodyHtml = True
SendMail.Send(message) '发送邮件
System.Windows.Forms.Application.DoEvents()
TextBox1.Text = TextBox1.Text & L.Mail & ": 邮件已经成功发送完毕。" & vbCrLf
L.Status = "已发送"
Dim Lg As New MailItemClass
Lg.Mail = L.Mail
Lg.Status = "成功"
lstMailList2.Items.Add(Lg) '添加发送成功
Catch
TextBox1.Text = TextBox1.Text & L.Mail & ": 邮件没有发送成功!原因是:" & Err.Description
L.Status = "失败:" & Err.Description
Dim Lg As New MailItemClass
Lg.Mail = L.Mail
Lg.Status = "失败:" & Err.Description
lstMailList3.Items.Add(Lg) '添加发送成功
'获取可能发生意外的错误并通知用户
End Try
--------------------编程问答-------------------- 呵呵.我重新帮你写了一个
//这个是生成信息
protected void Button1_Click(object sender, EventArgs e)
{
QMail mail = new QMail();
Attachment attachment = null;
//File Name
string fileName = string.Empty;
string filePath = string.Empty;
StringBuilder mailBody = new StringBuilder();
mailBody.Append("content-type:base64");
mailBody.Append("content-transfer-encodinf:");
mailBody.Append("content-disposition:inline");
mailBody.Append("filename:aa");
//增加附件
if (File1.Value != "")
{
filePath = this.File1.PostedFile.FileName;
fileName = filePath.Substring(filePath.LastIndexOf("\\") + 1);
//增加显示图片
mailBody.Append("content-id:" + fileName);
mailBody.Append("<img src='cid:" + fileName+"' />");
attachment = new Attachment(filePath);
}
//正文显示附件
//<img src="cid:123"> 使用cid:标记,表明图形是放在一个叫123的附件中的
//然后加入一个附件,指定为
//content-type: image/gif
//content-id: <123> 即上面那个123
//content-disposition: inline; filename="sdfsdf" filename是随便指定的
//content-transfer-encodinf: base64
//Send Mail
mail.MailSend("minqiang.zhang@metinform.cn", "minqiang.zhang@metinform.cn",
"minqiang.zhang@metinform.cn", "演示如果在正文显示附件", mailBody.ToString(), attachment, "");
}
//下面是microsoft自带的mail
using System;--------------------编程问答-------------------- 第一,打开邮件会不会显示附件中的图片要看具体的接收邮件的客户端
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.Net;
using System.IO;
namespace STS.MailSystem.Common
{
public class QMail
{
/// <summary>
/// 描述:Email发送通用函数
/// </summary>
/// <param name="from">发件人</param>
/// <param name="to">收件人(多个收件人以逗号隔开)</param>
/// <param name="subject">主题</param>
/// <param name="text">内容</param>
/// <param name="attch">附件</param>
/// <returns></returns>
public string MailSend(string from, string to, string cc, string subject, string text, Attachment attch, string priority)
{
MailMessage message = new MailMessage(from, to);
message.CC.Add(cc);
message.Subject = subject;
message.Body = text;
//message.CC.Add(new MailAddress(from)); //超送给自己
//message.Bcc.Add(new MailAddress(""));
if (attch != null)
{
Attachment data = attch;
message.Attachments.Add(data);
}
message.BodyEncoding = System.Text.Encoding.UTF8;//编码方式
switch (priority.ToUpper())
{
case "HIGH":
message.Priority = MailPriority.High;//优先级
break;
case "NORMAL":
message.Priority = MailPriority.Normal;//优先级
break;
case "LOW":
message.Priority = MailPriority.Low;//优先级
break;
default:
message.Priority = MailPriority.Normal;//优先级
break;
}
message.IsBodyHtml = true;//是否是html格式
SmtpClient client = new SmtpClient();//不同情况更改
//client.Credentials = CredentialCache.DefaultNetworkCredentials;//匿名认证
try
{
client.Send(message);
return "1";
}
catch (Exception e)
{
return e.Message;
}
}
}
}
第二,你不是以附件形式发送图片那就必须使用超文本模式发送邮件 --------------------编程问答-------------------- mqcan
Qmail 是什么, --------------------编程问答--------------------
我试过了.
这种方法好像不行. --------------------编程问答-------------------- <<如何在mail的正文显示图片>>
这个方法好像管用,但是不知道怎么使用,也不知道怎么安装MicroSoft自带的System.Net.Mail 组件http://www.cnblogs.com/mqcan/archive/2008/06/02/1212157.html
我想直接在Outlook打开邮件就可以显示图片.
而不是以附件的形式发送,如果是附件形式发送就会出现邮件最底部,而且outlook还会显示有附件.
如果是以html方式发送有图片的邮件,邮件主题下面就会显示 "阻止了部分图片以帮助防止发送者识别你的计算机.单击此处下载图片." 的提示框.
补充:.NET技术 , VB.NET