C# 向一封电子邮件添加多个附件
我使用以下代码发送邮件。但我只能添加一个附件。我想在一封邮件中添加30多个附件。我怎样才能解决这个问题。请帮帮我C# 向一封电子邮件添加多个附件,c#,C#,我使用以下代码发送邮件。但我只能添加一个附件。我想在一封邮件中添加30多个附件。我怎样才能解决这个问题。请帮帮我 string fromEmail = "abcd@gmail.com "; mail_add=recever@gmail.com MailMessage mailMessage = new MailMessage(fromEmail, mail_add, subject, subject); System.Net.Mail.Attachment attachement; attac
string fromEmail = "abcd@gmail.com ";
mail_add=recever@gmail.com
MailMessage mailMessage = new MailMessage(fromEmail, mail_add, subject, subject);
System.Net.Mail.Attachment attachement;
attachement = new System.Net.Mail.Attachment("path_with_xl_file");
mailMessage.Attachments.Add(attachement);
mailMessage.Body = body;
MailAddress copy = new MailAddress(fromEmail );
mailMessage.CC.Add(copy);
SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587
smtpClient.EnableSsl = false;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential(fromEmail, "mis123");
try
{
smtpClient.Send(mailMessage);
}
您只需执行
mailMessage.Attachments.Add
多次即可:
mailMessage.Attachments.Add(new System.Net.Mail.Attachment("path_with_xl_file"));
mailMessage.Attachments.Add(new System.Net.Mail.Attachment("path_with_xl_file_2"));
mailMessage.Attachments.Add(new System.Net.Mail.Attachment("path_with_xl_file_3"));
mailMessage.Attachments.Add(new System.Net.Mail.Attachment("path_with_xl_file_4"));
当然,您可以通过使用数组、循环和其他语言工具来简化此代码。这取决于您在程序中存储这30个文件的方式。例如,如果将所有路径存储在
string
数组中,则可以执行以下操作:
string[] pathes = /* ... */;
foreach (var path in pathes)
{
mailMessage.Attachments.Add(new System.Net.Mail.Attachment(path));
}
下面是一个示例代码。此代码假定您已经有一组要转换为
附件的文件路径
private static void SendEmail(IEnumerable<string> attachmentFilePaths)
{
string fromEmail = "abcd@gmail.com ";
string mail_add = "recever@gmail.com";
string subject = "hello";
string body = "How are you?";
try
{
using (MailMessage mailMessage = new MailMessage(fromEmail, mail_add, subject, body))
{
foreach (var attachmentFilePath in attachmentFilePaths)
{
if (File.Exists(attachmentFilePath))
{
Attachment attachement = new Attachment(attachmentFilePath);
mailMessage.Attachments.Add(attachement);
}
}
MailAddress copy = new MailAddress(fromEmail);
mailMessage.CC.Add(copy);
using (SmtpClient smtpClient = new SmtpClient())
{
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.EnableSsl = false;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential(fromEmail, "mis123");
smtpClient.Send(mailMessage);
}
}
}catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private static void sendmail(IEnumerable attachmentfilepath)
{
字符串fromEmail=”abcd@gmail.com ";
字符串mail_add=”recever@gmail.com";
string subject=“hello”;
string body=“你好吗?”;
尝试
{
使用(MailMessage MailMessage=newmailmessage(从电子邮件、邮件添加、主题、正文))
{
foreach(attachmentFilePath中的var attachmentFilePath)
{
if(File.Exists(attachmentFilePath))
{
附件attachement=新附件(attachmentFilePath);
mailMessage.Attachments.Add(附件);
}
}
邮件地址副本=新邮件地址(来自电子邮件);
mailMessage.CC.Add(副本);
使用(SmtpClient SmtpClient=new SmtpClient())
{
smtpClient.Host=“smtp.gmail.com”;
smtpClient.Port=587;
smtpClient.EnableSsl=false;
smtpClient.UseDefaultCredentials=false;
smtpClient.Credentials=新的网络凭据(来自电子邮件“mis123”);
smtpClient.Send(mailMessage);
}
}
}捕获(例外情况除外)
{
Debug.WriteLine(例如消息);
}
}
什么是邮件添加=recever@gmail.com
?我猜它应该是一个字符串。可能的邮件副本是收件人的邮件地址。您建议在上面写30次以上吗??