また、newest snapshotにあるSMTPを使用してメールを送信する場合は、Synapseライブラリを使用することができます。ここで
は、ログインlogin
とパスワードpassword
でsmtp.server.com
に[email protected]
から[email protected]
に添付c:\voucher.pdf
ファイルでメールを送信する必要がありますコードです。 TMimeMess
クラスの残りの機能については、the referenceに直接お問い合わせください。
私が使用しているはるかに複雑なコードを簡略化してローカライズしているため、これを検証したりコンパイルすることはできません。そうでない場合、のはそれをdownvoteてみましょう:)
uses
SMTPSend, MIMEPart, MIMEMess;
procedure TForm.SendEmailClick(Sender: TObject);
var
MIMEText: TStrings;
MIMEPart: TMimePart;
MIMEMessage: TMimeMess;
begin
MIMEText := TStringList.Create;
MIMEText.Add('Hello,');
MIMEText.Add('here is the text of your e-mail message,');
MIMEText.Add('if you want the HTML format, use AddPartHTML');
MIMEText.Add('or e.g. AddPartHTMLFromFile if you have your');
MIMEText.Add('HTML message content in a file.');
MIMEMessage := TMimeMess.Create;
with MIMEMessage do
try
Header.Date := Now;
Header.From := '[email protected]';
Header.ToList.Clear;
Header.ToList.Add('[email protected]');
Header.CcList.Clear;
Header.Subject := 'E-mail subject';
Header.XMailer := 'My mail client name';
MIMEPart := AddPartMultipart('mixed', nil);
AddPartText(MIMEText, MIMEPart);
AddPartBinaryFromFile('c:\voucher.pdf', MIMEPart);
EncodeMessage;
if SendToRaw(Header.From, // e-mail sender
Header.ToList.CommaText, // comma delimited recipient list
'smtp.server.com', // SMTP server
Lines, // MIME message data
'login', // server authentication
'password') // server authentication
then
ShowMessage('E-mail has been successfuly sent :)')
else
ShowMessage('E-mail sending failed :(');
finally
Free;
MIMEText.Free;
end;
end;
更新:
Downvoter step into the lightから素敵なコメント(男性、あなたのニックネームはしてください変更によると、それはもうクールではないです:)、本当に悪いだろうすべての受信者のリストを全員に送信する場合。シナプスでは、メッセージヘッダにBCCを追加します。you cannotMIMEMessage
にはHeader.BCCList
というプロパティはありません。 代わりに、データを送信する前に直接変更することができます。
// First, you will remove the line where you are adding a recipient to the list
Header.ToList.Add('[email protected]');
// the rest between you can keep as it is and after the message encoding
EncodeMessage;
// and before sending the mail you'll insert the line with BCCs
Lines.Insert(1, 'Bcc: [email protected], [email protected]');
if SendToRaw ...
私はこのルートにショットをつけます。参照は問題になることはありません。アプリケーションは、受取人にのみ伝票を送信します。プログラムは10-15の異なるバウチャーを生成し、顧客の顧客に電子メールで送信します。全体のプロセスで1人の受信者。 Outlookを使用した現在の実装は、魅力のように機能しますが、すべてがOutlookを使用しているわけではありません。 – JamesW