miércoles, 14 de noviembre de 2007

Envio de emails con Gmail

Aquí teneis un pequeño ejemplo de como enviar correos con Gmail:


import java.security.Security;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class GmailWrapper {

private static final String MAIL_SERVER = "smtp.gmail.com";
private static final String MAIL_PORT = "465";
private static final String MAIL_FROM = "from@gmail.com";
private static final String MAIL_USER = "user@gmail.com";
private static final String MAIL_PASSWORD = "password";

public void sendRememberMail(String username, String password, String to) {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

String msgBody = "The message you want to sent";
String msgSubject = "Mail subject";

Properties properties = new Properties();

properties.put("mail.smtp.user", MAIL_FROM);
properties.put("mail.smtp.password", MAIL_PASSWORD);
properties.put("mail.smtp.host",MAIL_SERVER);
properties.put("mail.smtp.port", MAIL_PORT);
properties.put("mail.smtp.starttls.enable","true");
properties.put( "mail.smtp.auth", "true");
properties.put("mail.smtp.debug", "false");
properties.put("mail.from",MAIL_FROM);
properties.put("mail.smtp.socketFactory.port", MAIL_PORT);
properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.put("mail.smtp.socketFactory.fallback", "false");

try {

Authenticator auth = new MyAuthenthicator();
Session session = Session.getInstance(properties, auth);
session.setDebug(false);
Message message = new MimeMessage(session);
InternetAddress[] address = {new InternetAddress(to)};
message.setRecipients(Message.RecipientType.TO, address);
message.setFrom(new InternetAddress(MAIL_FROM));
message.setSubject(msgSubject);
message.setText(msgBody);

BodyPart messageBodyPart = new MimeBodyPart();
String messageText = msgBody;
messageBodyPart.setText(messageText);

Multipart mPart = new MimeMultipart();
BodyPart body = new MimeBodyPart();
body.setContent(msgBody,"text/plain");
mPart.addBodyPart(body);

message.setContent(mPart);
message.saveChanges();

Transport transport = session.getTransport(address[0]);
transport.connect();

transport.sendMessage(message,address);
} catch (Exception e) {
// Catch exception
}
}

public class MyAuthenthicator extends Authenticator {

protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(MAIL_USER,MAIL_PASSWORD);
}
}
}

lunes, 15 de octubre de 2007

Strings de conexión

Una página curiosa sobre conexiones a diferentes tipos de bases de datos:

http://www.connectionstrings.com/

jueves, 11 de octubre de 2007

Envio de emails via VBS

Este script envia un email con un fichero adjunto utilizando un servidor SMTP externo via VB Script. Para probarlo, solamente tenemos que copiar el codigo en un fichero con extensión .vbs y desde una consola de dos, ejecutarlo.


objMessage.Subject = "Subject email"
objMessage.From = """Alis email"" "
objMessage.To = "to@mycompany.com"
objMessage.Cc = "cc@mycompany.com"
objMessage.Bcc = "bcc@mycompany.com"

objMessage.TextBody = "mail body"
objMessage.Addattachment "c:\test.txt"

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mycompany.com"

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

objMessage.Configuration.Fields.update
objMessage.Send

viernes, 28 de septiembre de 2007

Conexión a un cubo OLAP desde Excel

Excel permite conectarse directamente a cubos OLAP mediante el motor de Analysis Services de SQL Server 2005.

En la pestaña de datos, tenemos la opción para obeterner datos de una fuente externa. Seleccionamos la opción Analysis Services.













Especificamos la dirección ip o nombre de la máquina:















En caso de utilizar autentificación con nombre de usuario y contraseña, en un paso futuro deberemos marcar la opción de Guardar contraseña en fichero.

De las diferentes bases de datos implemendas en el servidor, elegimos con la que queremos trabajar:
















En el último paso, si hemos elegido autentificación con nombre de usuario y contraseña, deberemos marcar el chack de Guardar en fichero.

















Una vez conectados al cubo, aparecerá una tabla dinámica con la que podremos jugar, arrastrando las dimensiones y hechos que queramos.

martes, 25 de septiembre de 2007

Como eliminar el log transaccional de una base de datos

Muchas veces encontramos que una base de datos ocupa mucho espacio en disco sin tener un gran volumen de datos en ella. En estos casos, es habitual encontrar un fichero de log grande debido a las transacciones que se han llevado a cabo.

Para vaciar el fichero de log podemos ejecutar el siguiente código SQL:

BACKUP LOG
MyDatabase WITH TRUNCATE_ONLY
DBCC SHRINKDATABASE (MyDatabase, TRUNCATEONLY )

domingo, 23 de septiembre de 2007

Comandos FTP en MS-DOS

Podemos realizar un conjunto de comandos FTP en MS-DOS mediante un fichero adicional. Dicho fichero contendrá el acceso al servidor y los comandos que queramos realizar.
Como ejemplo:


OPEN xxx.xxx.xxx.xxx
username
password

LCD C:\temp
GET myfile
QUIT


En este ejemplo, nos conectamos al servidor, accedemos a la carpeta local c:\temp y descargamos el fichero myfile.
Para ejecutar la aplicación ftp con el fichero de comando, entramos la siguiente línea ftp -v -i -s:commands.txt.

Report Builder con autentificación básica

Bajo la configuración de autentificación básica en Reporting Services, podemos comprobar que el usuario debe verificar sus credenciales cuando intenta acceder a alguno de los dos directorios virtuales del IIS. En cambio, si accedemos a la herramienta Report Builder, podremos comprobar que el sistema nos devuelve el siguiente error:

Cannot Retrieve Application. Authentication Error.

Para permitir el acceso a la herramienta, deberemos dar acceso anónimo a la carpeta

/reportserver/reportbuilder

de los directorios virtuales del IIS.

Es muy importante remarcar que esta opción solo debe realizarse si Reporting Services están configurado bajo SSL.