none
Como Fazer um Upload direto no atach do Email para enviar a img uploadada em Anexo

    Question

  •  protected void btnEnviar_Click(object sender, EventArgs e)
        {
          MailMessage oEmail = new MailMessage();
          MailAddress sDe = new MailAddress("aulasonline@aulasonline.net", txtEmail.Text);
    
          oEmail.From = sDe; //Email proveniente de txtEmail.Text remetente da msg
          oEmail.To.Add("meuemail@meudominio.net"); //Email que irá receber as mensagens do form de contato
          oEmail.ReplyTo = new MailAddress(txtEmail.Text);
          oEmail.Priority = MailPriority.Normal; //Prioridade Normal de Envio
          oEmail.IsBodyHtml = true; //Habilita o envio de msgs formato HTML;
          oEmail.Subject = "SAC/CONTATO - Ref.á:" + ddlGrupo.SelectedValue.ToString(); //Aqui definimos que aparecerá o nome do cliente na linha de assunto
          oEmail.Body = "<br/><br/>CADASTRO - Usuário:" + txtNome.Text + "<br/><br/>" + txtMensagem.Text + "<br/><br/>Ficou Sabendo de nosso Site por Intermédio do Seguinte Veículo de Comunicação, Jornal ou WebSite:" + ddlFicouSabendo.SelectedValue.ToString() + "<br/><br/><br/>Aceita Receber Boletins no seu e-mail:" + ddlBoletins.SelectedValue.ToString(); //Corpo da Mensagem digitada na caixa de texto txtMensagem.Text
    
          //Para Evitar problemas de caracteres estranhos
          //Nas Linhas de Assunto e Corpo de texto do email
          //Codificamos para ISO-8859-1 nas linhas abaixo
    
          oEmail.SubjectEncoding = Encoding.GetEncoding("ISO-8859-1");
          oEmail.BodyEncoding = Encoding.GetEncoding("ISO-8859-1");
    
          //Host Padrão da LOCAWEB : smtp2.locaweb.com.br
    
          SmtpClient oEnviar = new SmtpClient();
          oEnviar.Host = "smtp2.locaweb.com.br";
          oEnviar.Port = 25;
    
          try
          {
            oEnviar.Send(oEmail); //Envia o Email
            lblMensagem.Text = txtNome.Text + "," + '\n' + "mensagem enviada com sucesso! Responderemos em Breve!!!";
          }
          catch
          {
            lblMensagem.Text = txtNome.Text + "," + '\n' + "ocorreu um erro ao tentar enviar a mensagem!";
          }
    
          //Limpa o Corpo de Email e os Objetos de Envio
          oEmail.Dispose();
    
          txtNome.Text = "";
          txtEmail.Text = "";
          txtMensagem.Text = "";
    
          // hplvoltar.Visible = true;
        }

    Olá pessoal, baseado no code behind em csharp vs2008 ácima, gostaria de saber se e como?

    A)Se é possivel fazer um UPLOAD de imagens direto para o atatch da imagem, sem colocar a imagem no servidor

    B)Se a questão A for positiva e baseado no code-behind ácima como eu faria o metodo de upload e atatch para enviar, sem precisar colocar a imagem no servidor, enviando-a diretamente pelo atach do email

    Fico no aguardo á quem puder responder e desde já agradeço

     

     

     


    LADEF
    Friday, July 02, 2010 1:14 PM

Answers

All replies

  • Segue

    http://aspnet.4guysfromrolla.com/articles/080206-1.aspx

    Friday, July 02, 2010 1:27 PM
    Moderator
  • O duro que tá td em vb.net será que convertido em csharp o passado deste link vai ter muida mudança?

     

    Fico no aguardo e desde já agradeço

     


    LADEF
    Friday, July 02, 2010 4:19 PM
  • Veja ae

    http://www.developerfusion.com/tools/convert/vb-to-csharp/

     

    Vai convertendo parte por parte

    Friday, July 02, 2010 5:16 PM
    Moderator
  • Olá Seilor e amigos é obrigado o anexo uploadado á  sêr enviado por email têr que estar armazenado em alguma pasta do servidor de hospedagem ex. LOCAWEB, ou não .Porque tentei com o codigo abaixo e me retornou erro

     protected void btnEnviar_Click(object sender, EventArgs e)
        {
          MailMessage oEmail = new MailMessage();
          MailAddress sDe = new MailAddress("meuemail@meudominio.net", txtEmail.Text);
          oEmail.From = sDe; //Email proveniente de txtEmail.Text remetente da msg
          oEmail.To.Add("meuemail@meudominio.net"); //Email que irá receber as mensagens do form de contato
          
          oEmail.ReplyTo = new MailAddress(txtEmail.Text);
          oEmail.Priority = MailPriority.Normal; //Prioridade Normal de Envio
          oEmail.IsBodyHtml = true; //Habilita o envio de msgs formato HTML;
          oEmail.Subject = "CONTATO - Ref.á:" + ddlGrupo.SelectedValue.ToString(); //Aqui definimos que aparecerá o nome do cliente na linha de assunto
          oEmail.Body = "<br/><br/>Contato - Usuário:" + txtNome.Text + "<br/><br/>" + txtMensagem.Text + "<br/><br/>Ficou Sabendo de nosso Site por Intermédio do Seguinte Veículo de Comunicação, Jornal ou WebSite:" + ddlFicouSabendo.SelectedValue.ToString() + "<br/><br/><br/>Aceita Receber Boletins no seu e-mail:" + ddlBoletins.SelectedValue.ToString(); //Corpo da Mensagem digitada na caixa de texto txtMensagem.Text
    
          nomeArquivo = FileUpload1.FileName.ToString();
    
          //Anexar Arquivo1
          oEmail.Attachments.Add(new Attachment(nomeArquivo));
    
    
          //Para Evitar problemas de caracteres estranhos
          //Nas Linhas de Assunto e Corpo de texto do email
          //Codificamos para ISO-8859-1 nas linhas abaixo
    
          oEmail.SubjectEncoding = Encoding.GetEncoding("ISO-8859-1");
          oEmail.BodyEncoding = Encoding.GetEncoding("ISO-8859-1");
    
          //Host Padrão da LOCAWEB : smtp2.locaweb.com.br
    
          SmtpClient oEnviar = new SmtpClient();
          oEnviar.Host = "smtp2.locaweb.com.br";
          //oEnviar.Host = "smtp.meudominio.net";
          // oEnviar.Host = "localhost";
          oEnviar.Port = 25;
    
    
          try
          {
            oEnviar.Send(oEmail); //Envia o Email
            lblMensagem.Text = txtNome.Text + "," + '\n' + "mensagem enviada com sucesso! Responderemos em Breve!!!";
          }
          catch (Exception ex)
          {
            lblMensagem.Text = txtNome.Text + "," + '\n' + "ocorreu um erro ao tentar enviar a mensagem!" + ex.Message.ToString();
          }
    
          //Limpa o Corpo de Email e os Objetos de Envio
          oEmail.Dispose();
    
          txtNome.Text = "";
          txtEmail.Text = "";
          txtMensagem.Text = "";
    
          // hplvoltar.Visible = true;
        }

    o erro que me retornou foi

     

    Could not find file 'c:\windows\system32\inetsrv\logoanuncio.jpg'.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.IO.FileNotFoundException: Could not find file 'c:\windows\system32\inetsrv\logoanuncio.jpg'

     

    logoanuncio.jpg é o arquivo uploadado em anexo

    o meu web.config está setado desta forma padrão LOCAWEB

    <system.net>
    		<mailSettings>
    			<smtp from="meudominio@meudominio.net">
    				<network host="smtp.meudominio.net" password="mypass" port="587" userName="meudominio@meudominio.net"/>
    			</smtp>
    		</mailSettings>
    	</system.net>
    </configuration>
    Fico no aguardo pela resposta e desde já agradeço
    LADEF
    Tuesday, July 06, 2010 4:15 AM
  • Salva ele em memoria
    Tuesday, July 06, 2010 11:03 AM
    Moderator
  • Seilor mas como faço isto e porque ele da este erro

     

    Could not find a part of the path 'e:\home\meuloginlocaweb\web\folder\testeuploadema il\anexos\'.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path 'e:\home\meuloginlocaweb\web\folder\testeuploadema il\anexos\'.

     

    modifiquei um pouco o codigo abaixo mesmo assim ele deu este erro ácima na hospedagem que eu tenho na LOCAWEB

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Globalization;
    using System.Net.Mail;
    using System.Net.Mime;
    using System.Net;
    using System.Text;
    using System.IO;
    
    namespace TesteEnviaEmailUpload
    {
      public partial class _Default : System.Web.UI.Page
      {
        public string nomeArquivo;
        public string path;
    
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    
        protected void btnEnviar_Click(object sender, EventArgs e)
        {
          MailMessage oEmail = new MailMessage();
          MailAddress sDe = new MailAddress("meudominio@meudominio.net", txtEmail.Text);
          oEmail.From = sDe; //Email proveniente de txtEmail.Text remetente da msg
          oEmail.To.Add("meudominio@meudominio.net"); //Email que irá receber as mensagens do form de contato
          
          oEmail.ReplyTo = new MailAddress(txtEmail.Text);
          oEmail.Priority = MailPriority.Normal; //Prioridade Normal de Envio
          oEmail.IsBodyHtml = true; //Habilita o envio de msgs formato HTML;
          oEmail.Subject = "SAC/CONTATO - Ref.á:" + ddlGrupo.SelectedValue.ToString(); //Aqui definimos que aparecerá o nome do cliente na linha de assunto
          oEmail.Body = "<br/><br/>SAC - Usuário:" + txtNome.Text + "<br/><br/>" + txtMensagem.Text + "<br/><br/>Ficou Sabendo de nosso Site por Intermédio do Seguinte Veículo de Comunicação, Jornal ou WebSite:" + ddlFicouSabendo.SelectedValue.ToString() + "<br/><br/><br/>Aceita Receber Boletins no seu e-mail:" + ddlBoletins.SelectedValue.ToString(); //Corpo da Mensagem digitada na caixa de texto txtMensagem.Text
    
          nomeArquivo = FileUpload1.FileName.ToString();
          path = "e:\\home\\meuloginlocaweb\\web\\folder\\testeuploademail\\anexos\\";
    
          FileUpload1.SaveAs(path);
    
          // Response.Write(path + nomeArquivo);
          //Anexar Arquivo1
          oEmail.Attachments.Add(new Attachment(path+nomeArquivo));
    
          //Para Evitar problemas de caracteres estranhos
          //Nas Linhas de Assunto e Corpo de texto do email
          //Codificamos para ISO-8859-1 nas linhas abaixo
    
          oEmail.SubjectEncoding = Encoding.GetEncoding("ISO-8859-1");
          oEmail.BodyEncoding = Encoding.GetEncoding("ISO-8859-1");
    
          //Host Padrão da LOCAWEB : smtp2.locaweb.com.br
    
          SmtpClient oEnviar = new SmtpClient();
          oEnviar.Host = "smtp2.locaweb.com.br";
          //oEnviar.Host = "smtp.meudominio.net";
          // oEnviar.Host = "localhost";
          oEnviar.Port = 25;
    
    
          try
          {
            oEnviar.Send(oEmail); //Envia o Email
            lblMensagem.Text = txtNome.Text + "," + '\n' + "mensagem enviada com sucesso! Responderemos em Breve!!!";
          }
          catch (Exception ex)
          {
            lblMensagem.Text = txtNome.Text + "," + '\n' + "ocorreu um erro ao tentar enviar a mensagem!" + ex.Message.ToString();
          }
    
          //Limpa o Corpo de Email e os Objetos de Envio
          oEmail.Dispose();
    
          txtNome.Text = "";
          txtEmail.Text = "";
          txtMensagem.Text = "";
    
          // hplvoltar.Visible = true;
        }
      }
    }
    Fico no aguardo de algum exemplo como salvar na memoria ou resolver o erro acima e desde já agradeço
    LADEF
    Tuesday, July 06, 2010 3:40 PM
  • Olá vc não pode deixar esse caminho ae faz assim

      FileUpload fileUpload = (FileUpload)CaptchaUltimateControl1.FindControl("FileUpload1");
                Byte[] smallerImageBytes = null;
                Byte[] imageBytes = null;

                try
                {
                    if (fileUpload != null && fileUpload.HasFile)
                    {
                        imageBytes = fileUpload.FileBytes;
                        if (imageBytes.Length > 1000000)
                        {
                            completionStatus = false;
                            completionMessage = "Image May not be over 1Meg, try again";
                        }
                        else
                        {
                            MemoryStream ms = new MemoryStream(imageBytes);
                            string fName = string.Empty;
                            if (!string.IsNullOrEmpty(fileUpload.FileName))
                            {
                                fName = fileUpload.FileName;
                            }
                            smallerImageBytes = CodeCampSV.Utils.ResizeFromStream(fName, CodeCampSV.Utils.ThumbSize, ms);
                            completionStatus = true;
                        }
                    }
                }
                catch (Exception eee)
                {
                    throw new ApplicationException(eee.ToString());
                }

     

    Veja completo aqui

    http://forums.asp.net/p/1049189/1478543.aspx

    Tuesday, July 06, 2010 4:45 PM
    Moderator
  • Seilor não entendi o porque do Captcha control já que vou usar direto o Upload no email como vc viu ácima?E qual caminho é que eu não posso deixar?Fico no aguardo e desde já agradeço

    e aproveitando surgiu um novo erro mesmo qdo testei a aplicação off line, em anexo no link abaixo, para testar on-line é só mudar o smtp e o email que remete o email

    deu o seguinte erro

    System.IO.DirectoryNotFoundException was unhandled by user code

      Message="Não foi possível localizar uma parte do caminho 'E:\\MINHASWEBNEWSAPPVS2008\\TesteEnviaEmailUpload\\TesteEnviaEmailUpload\\anexos\\'."

     

    aqui o link para baixar o projeto e me orientar sobre o que estaria errado pois o meu objetivo é anexar uma ou mais fotos no email á ser enviado

     

    TesteEnviaEmailUpload.rar

     

    Fico no aguardo de vossa resposta e desde já agradeço


    LADEF

    Wednesday, July 07, 2010 12:07 AM