Reputation: 405
Below is my code by which I try to send an email to the recipient. I want to attach a .PDF
file which is saved in the project folder. I tried using:
mail.Attachments.Add(new Attachment("c:\\temp\\example.txt"));
but it's not working. How do I attach a file?
C# Code sample
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SendEmail
{
public partial class SendEmail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SendMail();
}
protected void SendMail()
{
var fromAddress = "";
var toAddress = "";
//Password of your gmail address
const string fromPassword = "";
string subject = "INCOMPLETE APPLICATION CASE ID [CASE ID]";
string body = "Your Incomplete Grade Application has been Result[]";
// smtp settings
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = "10.12.46.3";
smtp.Port = 25;
smtp.EnableSsl = false;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.Timeout = 20000;
}
// Passing values to smtp object
smtp.Send(fromAddress, toAddress, subject, body);
}
}
}
Upvotes: 1
Views: 19125
Reputation: 11
I can see that others have not disposed of the attachment, remember the attachment can remain open so if you want to resend it you wont be able to as the file will remain in use.
var attachment = new Attachment(filepath, MediaTypeNames.Application.Pdf);
Message.Attachments.Add(attachment);
//other code and then Send email ...
attachment.Dispose();
Upvotes: 1
Reputation: 405
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
namespace SendEmail
{
public partial class SendEmail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SendMail();
}
protected void SendMail()
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress("");
mail.To.Add("");
mail.Subject = "INCOMPLETE APPLICATION CASE ID [CASE ID]";
mail.Body = "Your Incomplete Grade Application has been Result[]";
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(Server.MapPath("files/test.pdf"));
mail.Attachments.Add(attachment);
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = "10.12.46.3";
smtp.Port = 25;
smtp.EnableSsl = false;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential("", "");
}
smtp.Send(mail);
}
}
}
Upvotes: 4
Reputation: 2317
No time for comments right now, but this will get you out of your bind.
private void SendIt()
{
var fromAddress = "";
var toAddress = "";
//Password of your gmail address
const string fromPassword = "";
// smtp settings
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = "";
smtp.Port = 25;
smtp.EnableSsl = false;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.Timeout = 20000;
}
MailMessage msg = new MailMessage();
MailAddress ma = new MailAddress(fromAddress);
msg.To.Add(toAddress);
msg.From = ma;
msg.Attachments.Add(new Attachment(@"C:\temp\myreport.log"));
msg.Body = "Your body message";
msg.Subject = "Your subject line";
smtp.Send(msg);
}
Upvotes: 1