Tout ce que je veux, c'est envoyer un email avec une image intégrée. Je me bats avec et je ne sais pas pourquoi je ne pouvais pas l'obtenir. Le système envoie cet e-mail, mais sans montrer l'image et voici un aperçu du résultat:Comment envoyer un email avec une image intégrée en utilisant la fonction Mail en C#?
Pourriez-vous s'il vous plaît me aider à modifier le code ci-dessous pour traiter l'envoi de cette image? Supposons que nous avons n'importe quelle image.
code C#:
protected void Page_Load(object sender, EventArgs e)
{
Send();
}
protected void SendEmail(string toAddresses, string fromAddress, string MailSubject, string MessageBody, bool isBodyHtml, AlternateView av)
{
SmtpClient sc = new SmtpClient("MailAddress");
try
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress("[email protected]", "Test Sys");
//QuizLink is appSetting inside your web config
string newLink = System.Configuration.ConfigurationManager.AppSettings["QuizLink"].ToString();
msg.Bcc.Add(toAddresses);
msg.Subject = MailSubject;
msg.Body = MessageBody;
msg.IsBodyHtml = isBodyHtml;
msg.AlternateViews.Add(av);
sc.Send(msg);
}
catch (Exception ex)
{
throw ex;
}
}
protected void SendEmailTOAllUser()
{
string connString = "Data Source=localhost;Initial Catalog=TestDB;Integrated Security=True";
using (SqlConnection conn = new SqlConnection(connString))
{
var sbEmailAddresses = new System.Text.StringBuilder(2000);
string quizid = "";
// Open DB connection.
conn.Open();
string cmdText = "SELECT MIN (QuizID) As mQuizID FROM dbo.QUIZ WHERE IsSent <> 1";
using (SqlCommand cmd = new SqlCommand(cmdText, conn))
{
SqlDataReader reader = cmd.ExecuteReader();
if (reader != null)
{
while (reader.Read())
{
// There is only 1 column, so just retrieve it using the ordinal position
quizid = reader["mQuizID"].ToString();
}
}
reader.Close();
}
string cmdText2 = "SELECT Username FROM dbo.employee";
using (SqlCommand cmd = new SqlCommand(cmdText2, conn))
{
SqlDataReader reader = cmd.ExecuteReader();
if (reader != null)
{
while (reader.Read())
{
var sName = reader.GetString(0);
if (!string.IsNullOrEmpty(sName))
{
if (sbEmailAddresses.Length != 0)
{
sbEmailAddresses.Append(",");
}
// Just use the ordinal position for the user name since there is only 1 column
sbEmailAddresses.Append(sName).Append("@mailAddress.com");
}
}
}
reader.Close();
}
string cmdText3 = "UPDATE dbo.Quiz SET IsSent = 1 WHERE QuizId = @QuizID";
using (SqlCommand cmd = new SqlCommand(cmdText3, conn))
{
// Add the parameter to the command
var oParameter = cmd.Parameters.Add("@QuizID", SqlDbType.Int);
var sEMailAddresses = sbEmailAddresses.ToString();
string link = "<a href='http://localhost/test.aspx?testid=" + quizid + "'> Click here to participate </a>";
string body = @"................";
AlternateView av = AlternateView.CreateAlternateViewFromString(body, null, MediaTypeNames.Text.Html);
LinkedResource lr = new LinkedResource("contactUs.gif", MediaTypeNames.Image.Gif);
lr.ContentId="image1";
av.LinkedResources.Add(lr);
int sendCount = 0;
List<string> addressList = new List<string>(sEMailAddresses.Split(','));
StringBuilder addressesToSend = new StringBuilder();
if (!string.IsNullOrEmpty(quizid))
{
for (int userIndex = 0; userIndex < addressList.Count; userIndex++)
{
sendCount++;
if (addressesToSend.Length > 0)
addressesToSend.Append(",");
addressesToSend.Append(addressList[userIndex]);
if (sendCount == 10 || userIndex == addressList.Count - 1)
{
SendEmail(addressesToSend.ToString(), "", "........", body, true, av);
addressesToSend.Clear();
sendCount = 0;
}
}
// Update the parameter for the current quiz
oParameter.Value = quizid;
// And execute the command
cmd.ExecuteNonQuery();
}
}
conn.Close();
}
}
bonjour, avez-vous essayez de référencer votre image avec Server.MapPath qui est Server.MapPath (@ "images/contactUs.jpg"); au lieu de ("D: \\ inetpub \\ wwwroot \\ msa \\ PSSP \\ images \\ contactUs.gif"? –