[ASP.net] Enviar mail a todos os utilizadores

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

[ASP.net] Enviar mail a todos os utilizadores

Mensagempor Red_Beret » Quinta Jun 14, 2007 11:21

Boas

Tenho aqui um site em ASP.net + C# + SQLServer Express2005

Será que alguem me sabe explicar como faço para enviar um email a todos os utilizadores que estão registados?
Imagem
Red_Beret
Membro Vitalício
Membro Vitalício
 
Mensagens: 2334
Registado: Sexta Set 17, 2004 11:13

Mensagempor fyngr » Quinta Jun 14, 2007 11:26

da aqui uma vista de olhos, acho que tá tudo explicado:
http://www.aspheute.com/english/20000918.asp
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31

Mensagempor Red_Beret » Quinta Jun 14, 2007 11:32

Obrigado pela resposta

Pois, eu ja tinha voisto isso. Mas isso só funciona bem quando é um mail para 1 endereço.

Neste caso, o que eu queria era ir buscar todos os emails à BD, e enviar o mesmo mail para todos (um email em massa)
Imagem
Red_Beret
Membro Vitalício
Membro Vitalício
 
Mensagens: 2334
Registado: Sexta Set 17, 2004 11:13

Mensagempor fyngr » Quinta Jun 14, 2007 11:43

como fizeste?

entao e fazer um for e percorrer todos os mails e enviar? ou fazendo o mesmo e por pa dentro duma string, dividido por ',' tambem deve dar
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31

Mensagempor Red_Beret » Quinta Jun 14, 2007 13:20

fyngr Escreveu:como fizeste?

entao e fazer um for e percorrer todos os mails e enviar? ou fazendo o mesmo e por pa dentro duma string, dividido por ',' tambem deve dar


isso rebenta com o servidor (a parte de enviar um mail separado para cada mail)

Ja tinha pensado nessa da string, mas depois surgiu um pequeno problema. É que eu tou a fazer isto no C# e não percebo nada desta porcaria. Por acaso não sabes fazer isso, sabes? (fazer a query à BD e enviar os dados para a string separados por ",")

tks
Imagem
Red_Beret
Membro Vitalício
Membro Vitalício
 
Mensagens: 2334
Registado: Sexta Set 17, 2004 11:13

Mensagempor SkylineGTR » Quinta Jun 14, 2007 14:28

Isso não é dificil.
Eu ainda vou começar a aprender C# (vou tirar o MCP em Developing Microsoft .NET Applications for Windows), mas posso-te deichar o código em VB.NET que é idêntico, só mudará a sintaxe.

Código: Seleccionar todos
Dim myConnection As SqlConnection
Dim myCommand As SqlCommand

myConnection = New SqlConnection("Server=XXX;uid=XXX;pwd=XXX;database=XXX")

Dim mySelect As String = "SELECT XXX FROM XXX'"
myConnection.Open()
myCommand = New SqlCommand(mySelect, myConnection)

Dim myDR As SqlDataReader = myCommand.ExecuteReader()
Dim myStr As String = String.Empty
       
While myDR.Read()
myStr = myStr & ", "& myDR(0).ToString()
End while

myDR.Close()
myConnection.Close()


Isto é VB mas ficas com a ideia e C# só muda mesmo a sintaxe.
A parte da conecção deves perceber, o importante é declarares o DataReader e fazeres o ExecuteReader.
Depois o que acontece é que sempre que chamas o myDR.Read() estás a ler uma linha dos resultados e myDR(0) corresponde ao primeiro valor desse resultado. Depois só tens de fazer a concatenação da string e penso eu que está feito.
i7 920 | ASUS P6T Deluxe V2 | 6GB Corsair Dominator PC3-12800 | BFG GTX285 OC2 | 2x WD 640GB + WD 750GB + Seagate 750GB + Samsung F1 1TB | Corsair HX-620 | HP w2207 | Lian Li PC-V1110B
SkylineGTR
Membro Vitalício
Membro Vitalício
 
Mensagens: 4184
Registado: Terça Dez 28, 2004 22:26

Mensagempor fyngr » Quinta Jun 14, 2007 14:50

tambem nao sei a sintaxe em C#, mas tb é só escrever no google que deve aparecer aí muitos exemplos.
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31

Mensagempor Red_Beret » Segunda Jun 18, 2007 13:19

ok, obrigado, ja consegui.

já agora, alguem me sabe dizer qual é o erro aqui?

Código: Seleccionar todos
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "RetPromo")
        {
            CheckBox caixa = (CheckBox)GridView1.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("CheckBox1");
            string a;
            Label valor = (Label)GridView1.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("Label1");
            Label marca = (Label)GridView1.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("Label4");
            Label id = (Label)GridView1.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("Label3");
            Label nome = (Label)GridView1.Rows[int.Parse(e.CommandArgument.ToString())].FindControl("Label5");
            a = marca.Text + " " + nome.Text + " - " + valor.Text + " €";
            if (caixa.Checked == true)
            {
                SqlConnection ligacao2;
                SqlCommand comando;
                ligacao2 = new SqlConnection();
                ligacao2.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["BDLojaConnectionString"].ConnectionString;
                ligacao2.Open();
                string myUpdate = "Update Produto SET Promo=True WHERE ID_Prod=" + id.Text;
                comando = new SqlCommand(myUpdate, ligacao2);
                ligacao2.Close();
                Label3.Text = "Promoção retirada com sucesso";
            }
            else if (caixa.Checked == false)
            {
                SqlConnection ligacao2;
                SqlCommand comando;
                ligacao2 = new SqlConnection();
                ligacao2.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["BDLojaConnectionString"].ConnectionString;
                ligacao2.Open();
                string myUpdate = "Update Produto SET Promo=True WHERE ID_Prod="+id.Text;               
                comando = new SqlCommand(myUpdate, ligacao2);               
                ligacao2.Close();
                massmail(a);
                Label3.Text = "Promoção inserida com sucesso";
            }

        }

    }


Ela funciona, e chega ao fim sem dar nenhum erro, mas o update à Bd não é feito :(
Imagem
Red_Beret
Membro Vitalício
Membro Vitalício
 
Mensagens: 2334
Registado: Sexta Set 17, 2004 11:13


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron