以下是我尝试向收件人发送电子邮件的代码。我想附加一个保存在项目文件夹中的.PDF
文件。我尝试使用:
mail.Attachments.Add(new Attachment("c:\\temp\\example.txt"));
但它不起作用。如何附加文件?
C#代码示例
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);
}
}
}
答案 0 :(得分:1)
现在没时间发表评论,但这会让你摆脱束缚。
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);
}
答案 1 :(得分:0)
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);
}
}
}
答案 2 :(得分:0)
我可以看到其他人没有处理过附件,请记住附件可以保持打开状态,因此如果您想重新发送它,您将无法重新发送,因为文件将继续使用。
var attachment = new Attachment(filepath, MediaTypeNames.Application.Pdf);
Message.Attachments.Add(attachment);
//其他代码然后发送电子邮件...
attachment.Dispose();