Como ENVIAR EMAIL usando o MicroSoft Outlook atráves do ASP.NET
Boa Noite
Solicito consultoria de como fazer com que uma aplicação em uma intranet, envie email através do MicroSoft Outlook.
Atts
Sérgio
Sergio Santos
Curtidas 0
Respostas
[devmedia .net]
25/11/2008
Opa, blz Sérgio ?
Não entendi bem sua dúvida...
Poderia ser mais claro, e exemplificar ?
Abraços
Carlos Jr
GOSTEI 0
[devmedia .net]
25/11/2008
Blz sérgio ?
Estou aguardando seu contato para resolvermos seu problema.
Abraços
Carlos Jr
GOSTEI 0
Sergio Santos
25/11/2008
Carlos
Boa Noite
Explicando melhor...
Estou em um projeto onde de desenvolvimento de um Sistema de Controle de OS.
Este sistema rodará na intranet da empresa. (local).
Depois que a OS for cadastrada no sistema, uma copia da OS deve ser enviada por emial interno via MicroSoft Outlook, para os nivel de suporte da empresa.
Existe uma aplicação anterior que foi feita em parece que em VB6, que usa este recurso, ou seja, encaminhar o detalhe das OS para os setores responsaveis em fazer seus reparos via Email, mas usando o MS OUTLOOK para enviar os Emails.
Acho que consegui explicar!
GOSTEI 0
[devmedia .net]
25/11/2008
Cara, ainda não entendi,
pra quê usar o outlook se ele pode usar o envio de mail do .net direto ??
Não tem como usar o Programa Outlook em uma aplicação... não estou entendendo...
Será que você não quer dizer Microsoft Exchange não ?
Pegar os endereços de email do Exchange algo assim...
Nunca vi isso, não estou conseguindo imaginar a utilidade de se usar o outlook, ou alguma forma de se usar o outlook...
Não tem informação que esteja faltando me informar não, as vezes suas palavras estão claras para você porque você vivencia a situação, pra mim está estranho, não consigo entender mesmo.
Aguardo contato,
o mais cedo possível, precisamos resolver seu problema,
mas precisa me dar as informações completas.
Abraços
Carlos Jr
GOSTEI 0
Sergio Santos
25/11/2008
Carlos
Deixa eu passar mais informações para ver se há alguam solução..
Atualmente a aplicação que existe, a qual estou migrando, foi desenvolvida em VB6, win32.
E nela, após a digitação da OS, envia-se os dados da mesma via email, mas usando o MS OUTLOOK.
Ou seja, no VB6, tem uma maneira de abrir o MS OUTLOOK e passar os dados para ele, enviar o email.
Sendo um tecnologia da MicroSoft, eu acredito que o mesmo exista no DOT.NET.
Abs
Sérgio
GOSTEI 0
[devmedia .net]
25/11/2008
Opa, blz ?
A pergunta que não quer calar ...
Pra quê abrir o outlook ??
Se você consegue enviar emails sem utilizá-lo com as mesmas configurações ?
e se o cara que está mexendo no sistema não tiver o outlook ?
Vai forçá-lo a instalar ? isso não é muito bom...
Estou questionando, pois acho que está complicando uma coisa muito simples,
as vezes não é necessário fazermos uma coisa que tem em um sistema que estamos migrando, no sistema novo...
podemos melhorá processos...
Por isso questiono a necessidade de abrir o outlook, e não mudar isso..
Pois é muito mais fácil e rápido o envio de email pela biblioteca System.Net.Mail,
do que abrir Outlook...
Abraços
Carlos Jr
GOSTEI 0
[devmedia .net]
25/11/2008
Opa, blz Sérgio ..?
Aguardo seu retorno para resolvermos seu problema o quanto antes..
Abraços
Carlos Jr
GOSTEI 0
Sergio Santos
25/11/2008
Carlos
Vamos cancelar este post, conversei com o pessoal e pelo menos para mim, não ficarei mais responsável pela parte de email. Logo, deixa queito isto, em uma outra oportunidade, quem sabe, volto a estudar a questão do email via DOT.NET.
[]s
Sérgio
GOSTEI 0
Sergio Santos
25/11/2008
Já que a consultoria do Email não foi possivel, gostaria de obter uma consultoria em como montar um formulário de COnsulta / Relatório em ReportView passando parametros.
A idéia é a entrar com um Periodo (Data Inicial e Final) e um código de Cliente, e em seguida fazer a consulta usando AJAX. Baseado na consulta, passar estes mesmos parametros para um ObjectDatasource, para gerar um Relatório... Vi um video do Luciano Pimenta, mas ele não só passa um unico parametro e não entendi como passaria mais 2 parametros.
Atte
Sérgio
GOSTEI 0
Luiz Maia
25/11/2008
Sérgio,
Você pode usar o seguinte código:
parametros[0] = new ReportParameter(key,new string[] );
ReportViewer1.LocalReport.SetParameters(seus parametros aqui);
E no seu ReportViewer você os recupera com os mesmos nomes.
Segue código completo:
<script runat="server">
Protected Sub RunReport_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RunReport.Click
Dim pub As Microsoft.Reporting.WebForms.ReportParameterDim puba As Microsoft.Reporting.WebForms.ReportParameter
Dim startdate As DateTime = starttext.TextDim enddate As DateTime = endtext.TextDim num As Microsoft.Reporting.WebForms.ReportParameter
num = New ReportParameter("Assignment_Number", User.Identity.Name)pub = New Microsoft.Reporting.WebForms.ReportParameter("Start", startdate)
puba = New Microsoft.Reporting.WebForms.ReportParameter("End", enddate)Me.ReportViewer1.LocalReport.SetParameters(New Microsoft.Reporting.WebForms.ReportParameter() )
Me.ReportViewer1.LocalReport.SetParameters(New Microsoft.Reporting.WebForms.ReportParameter() )Me.ReportViewer1.LocalReport.SetParameters(New Microsoft.Reporting.WebForms.ReportParameter() )
ReportViewer1.LocalReport.Refresh()
ReportViewer1.Visible = True
End Sub
</Script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<span style="font-size: 16pt">Assignments By Date</span><br />
<asp:Label ID="Label1" runat="server" Text="Enter Start Date"></asp:Label>
<asp:TextBox ID="starttext" runat="server"></asp:TextBox>
<asp:Label ID="Label2" runat="server" Text="Enter End Date"></asp:Label>
<asp:TextBox ID="endtext" runat="server"></asp:TextBox>
<asp:Button ID="RunReport" runat="server" Text="Run Report" OnClick="RunReport_Click" /><br />
<br />
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
Height="1340px" Width="1076px" Visible="False">
<LocalReport ReportPath="Inspectors\assignments_bydate.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="assignbydate_Inspection_Assignments" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetData"TypeName="assignbydateTableAdapters.Inspection_AssignmentsTableAdapter"></asp:ObjectDataSource>
</asp:Content>
Estou usando 2 parametros aqui, uma data de inicio e outra de fim. Você deve criar estes mesmos parametros no seu report com os mesmos nomes. No exemplo acima: "start" e "end".
Espero ter ajudado.
Aguardo seu retorno.
Abraços
Att,
Luiz Maia
GOSTEI 0
Sergio Santos
25/11/2008
Luiz Maia
Desculpe minha ignorância, mas o codigo q vc mandou veio todo em Visual Basic e eu não entendo nada desta linguagem ainda.
Estou iniciando com C#. Seria possivel converter este código para C#/ASP.NET?
Aproveitando, pergunto. Existe algum comando no VS2005 ou fora dele, que converta automaticamente um fonte em VB para C# e Vice-Versa?
Desde já obrigado!
[]s
Sérgio
GOSTEI 0
Luiz Maia
25/11/2008
Ola Sergio,
Segue o código em C# da passagem de parametro para um ReportViewer:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Microsoft.Reporting.WebForms;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string _param1 = "valor_parametro_1";
string _param2 = "valor_parametro_2";
string _param3 = "valor_parametro_3";
Microsoft.Reporting.WebForms.ReportParameter param1;
Microsoft.Reporting.WebForms.ReportParameter param2;
Microsoft.Reporting.WebForms.ReportParameter param3;
ReportParameter[] vetParam = new ReportParameter[3];
vetParam[0] = new ReportParameter("Parametro1", _param1, false);
vetParam[1] = new ReportParameter("Parametro2", _param2, false);
vetParam[2] = new ReportParameter("Parametro3", _param3, false);
this.ReportViewer1.LocalReport.SetParameters(vetParam);
}
}
Quanto ao conversor de código VB/C#, existem vários no mercado, alguns são softwares livres, outros pagos e até conversores on line, mas nada recomendável. Com a prática no desenvolvimento verá que é so questão de sintaxe. Uns referem VB outros C#.
Espero que tenha ajudado com a questão do Report Viewer.
Aguardo seu retorno.
Abraços
Att,
Luiz Maia
GOSTEI 0
Luiz Maia
25/11/2008
Sergio,
Como você não me deu nenhum feedback.
Espero que tenha resolvido seu problema.
De qualquer form, continuamos a sua disposição para qualquer dúvida.
Abraços
Att,
Luiz Maia
GOSTEI 0
Sergio Santos
25/11/2008
Maia,
Como o projeto é pequeno fiz em VB mesmo desta vez.
Segue o Form que fiz:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="RelatorioWorkFlowAprovacao.aspx.vb" Inherits="_Default" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Impressão do Pedido</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="tbCodigo" runat="server" Visible="False" />
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" Height="800px" Width="97%" Visible="False">
<LocalReport ReportPath="RelPedidos.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="ObjectDataSource2" Name="dsPedItens_DataTable1" />
<rsweb:ReportDataSource DataSourceId="ObjectDataSource2" Name="DataSet1_DataTable1" />
<rsweb:ReportDataSource DataSourceId="ObjectDataSource2" Name="DataSet1_DTPedido" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" OldValuesParameterFormatString="original_"
SelectMethod="GetData" TypeName="DataSet1TableAdapters.DataTable">
<SelectParameters>
<asp:ControlParameter ControlID="tbCodigo" Name="tbCodigo" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
</form>
</body>
</html>
.Vb
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim param As Microsoft.Reporting.WebForms.ReportParameter
param = New ReportParameter("tbcodigo", Request.QueryString("COD"))
num = New ReportParameter("Assignment_Number", User.Identity.Name)
ReportViewer1.LocalReport.Refresh()
ReportViewer1.Visible = True
End Sub
End Class
GOSTEI 0
Luiz Maia
25/11/2008
Beleza então que funcionou Sergio.
Precisando de qualquer coisa, estamos ai.
Abraços
Luiz Maia
GOSTEI 0