在Delphi中使用indy SMTP发送gmail邮件
在Delphi中发送email很简单,发送ssl方式的gmail邮件也很简单,只要在使用的idSMTP上附加一个TIdSSLIOHandlerSocket 就可以了。
使用控件
-
procedure sendMail(sToMail, sSubject, sContent: String);
-
var
-
SMTP: TIdSMTP;
-
MailMessage: TIdMessage;
-
SSLSocket: TIdSSLIOHandlerSocket;
-
begin
-
SMTP := TIdSMTP.Create(nil);
-
SSLSocket := TIdSSLIOHandlerSocket.Create(nil);
-
MailMessage:= TIdMessage.Create(nil);
-
-
SMTP.IOHandler := SSLSocket;
-
SMTP.Port := 465;
-
SMTP.Host := 'smtp.gmail.com';
-
SMTP.AuthenticationType := atLogin;
-
-
smtp.UserName := 'SunnyYu2000';
-
smtp.Password := 'xxxxxx';
-
-
// 设置邮件的信息
-
MailMessage.From.Address := 'SunnyYu2000@gmail.com';
-
MailMessage.Recipients.EMailAddresses := sToMail;
-
MailMessage.Subject := sSubject;
-
MailMessage.Body.Text := sContent;
-
-
//发送邮件
-
try
-
try
-
SMTP.Connect(1000);
-
SMTP.Send(MailMessage);
-
ShowMessage('发送成功');
-
except on E:Exception do
-
ShowMessage('发送失败: ' + E.Message);
-
end;
-
finally
-
if SMTP.Connected then
-
SMTP.Disconnect;
-
end;
-
-
MailMessage.Free;
-
SSLSocket.Free;
-
SMTP.Free;
-
end;
编译后需要SSL动态库支持,支持库可以到Indy网站上下载到。
如果需要发送附件,可以再发送前添加如下类似代码
-
// 添加邮件的附件
-
TIdAttachment.Create(MailMessage.MessageParts, sAttachmentFileName);
————–
Indy需要的SSL支持dll下载地址 http://www.indyproject.org/Sockets/SSL.EN.aspx
Popularity: 32% [?]
Related
一个并行压缩的工具zipmt
随着数据的积累,被备份的文件也越来越大,通常都是采用linux自带的压缩工具进行压缩备份。今天发现一个并行压缩的工具zipmt,可以充分利用机器上的cpu来并行压缩,减少压缩时间。
压缩方法
Usage: zipmt [OPTION...]- muti threaded bzip2 compression utility - The name of the file to compress or just use “-” to indicate stdandard input. Help Options: -?, –help Show help options Application Options: -t, –threads The number of threads to use. -v, –verbose Show Progress -o, –outfile The name of an output file to write to -c, –stdout Write data to standard out -s, –stream Compress using the stream method
压缩时主要注意要用 -t n选项指定用来并行压缩的线程数量(一般和机器上安装的cpu数量对应),根据这个参数的设定以及机器实际的cpu数量,一般压缩时间会缩短到约为原先的 1/n 时间。
解压方式
zipmt不提供解压功能,需要用 bunzip2 来解压。
Popularity: 27% [?]
Random Posts
编译安装fastcgi++库
从fastcgipp官方网站下载最新的fastcgi++-2.0alpha-81f89e4e.tar.bz2,
-
tar -xjvf fastcgi++-2.0alpha-81f89e4e.tar.bz2
-
cd fastcgi++-2.0alpha-81f89e4e
-
./configure
-
./make
-
./make install
该fastcgi++库完全使用c++编写,依赖boost库(要求>1.35),所以安装时需要先安装boost库。
编译过程中碰到问题 mysql_set_character_set 找不到问题,修改 src/mysql.cpp 文件,将如下两行注释掉
-
//if(mysql_set_character_set(&connection, charset))
-
// throw Error(&connection);
再次编译通过。
安装后include头文件被拷贝到 /usr/local/include/fastcgi++/,库文件被拷贝到 /usr/local/lib/fastcgipp.a
编译examples目录下测试用的fastcgi应用,验证编译安装的正常性。
使用默认的 make examples 没有编译通过。打开Makefile文件,发现缺少对 boost库的引用,将其添加上,再次编译,通过。
-
FASTCGIPP_INCLUDE=/usr/local/include/fastcgi++
-
BOOST_INCLUDE=/usr/local/include/boost-1_39
-
BOOST_CPPFLAG=-I$(BOOST_INCLUDE) -pthread
-
BOOST_THREADLIB=-lboost_thread-gcc34-mt-1_39 -pthread
-
-
pkgConfigLibs=-lfastcgipp -lboost_thread -lmysqlclient
-
CXX=g++
-
CXXFLAG= -g -O2
-
-
database.fcgi: database.cpp
-
$(CXX) -o database.fcgi database.cpp -I$(FASTCGIPP_INCLUDE) $(pkgConfigLibs) $(BOOST_CPPFLAGS) $
-
(CXXFLAGS) $(BOOST_THREAD_LIBS)
-
-
clean:
-
rm -f *.fcgi
—————-
默认Makefile编译不通过的原因
1. 缺少对boost库的目录include引用
2. 缺少boost线程库的应用,默认使用的是-lboost_thread 需要为-lboost_thread-gcc34-mt-1_39 -pthread
Popularity: 48% [?]
Random Posts
编译安装BOOST库
从boost官方网站上下载最新的1.39版boost库。
-
tar -xjvf boost_1_39_0.tar.bz2
-
cd boost_1_39_0
-
./bootstrap.sh
-
./bjam -install
耐性等待编译安装,偶等了2个多小时。boost库的include头文件会被安装到 /usr/local/include/boost-1_39 下。库文件会被安装到 /usr/lib 目录下。
编译简单的测试程序。
-
#include <boost/lexical_cast.hpp>
-
#include <iostream>
-
int main()
-
{
-
using boost::lexical_cast;
-
int a = lexical_cast<int>("123456");
-
double b = lexical_cast<double>("123.456");
-
std::cout<<a<<std::endl;
-
std::cout<<b<<std::endl;
-
return 0;
-
}
编写一个简单的Makefile文件
-
BOOST_INCLUDE=/usr/local/include/boost-1.39
-
BOOST_ROOT=/usr/local/src/boost_1_39_0
-
BOOST_LIB=/usr/local/lib
-
-
CXX=g++
-
-
test: test.cpp
-
$(CXX) -o test test.cpp -I$(BOOST_INCLUDE)
-
clean:
-
rm -rf test
进行编译
-
make test
执行test程序可以看到输出结果.
123456 123.456
boost库安装确认通过。
————–
编译时可能需要导入的一些库引用
-
#使用regex
-
-lboost_regex-gcc
-
#使用thread
-
-lboost_thread -pthread
Popularity: 30% [?]
