.net 邮件发送附件的问题

发布网友

我来回答

2个回答

热心网友

正好手头上有个gmail发送邮件的代码,给你参考下吧,拷贝即可用

var fromAddress = new MailAddress("sender@gmail.com", "发件人");
var toAddress = new MailAddress("receiver@gmail.com", "收件人");
const string fromPassword = "发件人密码";
const string subject = "邮件名";
string body = "邮件内容";

var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}

下面代码是发送邮件带附件
const string Sender = "sender@gmail.com";
const string SenderName = "发件人姓名";
const string SenderPassword = "发件人密码";

public static void Send(string subject, string body, List<string> filePaths)
{
var fromAddress = new MailAddress(Sender, SenderName);
var toAddress = new MailAddress("receiver@gmail.com", "收件人姓名");

var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, SenderPassword),
Timeout = int.MaxValue
};

using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body })
{
foreach (var file in filePaths)
message.Attachments.Add(file);
smtp.Send(message);
}
}追问1.我想要的不是把文件发出去,而是生成一个图片的文件流,直接把这个流发出去,中间没有文件这一环节的。
2.如果说要把这个流保存成一个文件,然后再把这个文件发出去,这是可以的!只不过发送完成后要把这个文件删除,这就多了好几个步骤,导致系统现在比较慢!

热心网友

附件本身是不支持流形式的文件的。所以请转化为文件,然后把文件加在附件中

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com