当前位置: 首页 > 编程语言 > C#

C#发送带附件的邮件(图)分享

时间:2023-04-10 20:47:47 C#

C#发送带附件的邮件(图)我的方法是使用SMTP中继服务器发送邮件。一切正常(电子邮件已发送),除了附件(图像)以某种方式被压缩/记录并且无法从电子邮件中检索。该方法看起来像这样:Body="这是文本。"};if(uploadedImage!=null&&uploadedImage.ContentLength>0){System.Net.Mail.Attachment附件;attachment=newSystem.Net.Mail.Attachment(uploadedImage.InputStream,uploadedImage.FileName);message.Attachments.Add(附件);}message.IsBodyHtml=true;varsmtpClient=newSmtpClient();//SMTP凭证smtpClient.Send(message);返回真;}catch(Exceptionex){//Logg异常returnfalse;}}uploadedImage不为空。ContentLength为1038946字节(正确大小)。但是,发送的电子邮件包含图像作为附件,文件名正确,尽管它的大小为0字节。我错过了什么?System.Net.Mail.Attachment的构造函数的第二个参数不是文件名。这是内容类型。也许在创建附件@ChrisRun之前确保您的流位置为0,例如您应该将参数HttpPostedFileBase更改为byte[]。这样你就可以在更多地方重用你的类。尝试更改ContentType的文件名并添加MediaTypeNames.Image.Jpeg。此外,添加使用指令来配置MailMessage和SmtpClient使用(varmessage=newMailMessage{From=newMailAddress("from@gmail.com"),Subject="Thisissubject.",Body="Thisistext.",IsBodyHtml=true,To={"to@someDomain.com"}}){if(imageFile!=null&&imageFile.ContentLength>0){message.Attachments.Add(新附件(imageFile.InputStream,imageFile.ContentType,MediaTypeNames.Image.Jpeg));}使用(varclient=newSmtpClient("smtp.gmail.com"){Credentials=newSystem.Net.NetworkCredential("user","password"),EnableSsl=true}){client.Send(message);}}Cheers以上是C#学习教程:C#使用附件发送邮件(图片)分享所有内容。如果对大家有用,需要进一步了解C#学习教程,还望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: