View source code
Display the source code in std/net/curl.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.


Basic SMTP protocol support.

struct SMTP ;


connectTimeout[set] DurationSet timeout for connecting.
dataTimeout[set] DurationSet timeout for activity on connection.
dnsTimeout[set] DurationDNS lookup timeout.
isStopped[get] boolTrue if the instance is stopped. A stopped instance is not usable.
localPort[set] ushortSet the local outgoing port to use.
localPortRange[set] ushortSet the local outgoing port range to use. This can be used together with the localPort property.
mailFrom[set] const(char)[]Setter for the sender's email address.
message[set] stringSets the message body text.
netInterface[set] const(char)[]The network interface to use in form of the IP of the interface.
onProgress[set] int delegate(ulong, ulong, ulong, ulong)The event handler that gets called to inform of upload/download progress.
onReceive[set] ulong delegate(ubyte[])The event handler that receives incoming data. Be sure to copy the incoming ubyte[] since it is not guaranteed to be valid after the callback returns.
onSend[set] ulong delegate(void[])The event handler that gets called when data is needed for sending. The length of the void[] specifies the maximum number of bytes that can be sent.
operationTimeout[set] DurationSet maximum time an operation is allowed to take. This includes dns resolution, connecting, data transfer, etc.
proxy[set] const(char)[]Proxy
proxyPort[set] ushortProxy port
proxyType[set] CurlProxyProxy type
tcpNoDelay[set] boolSet the tcp no-delay socket option on or off.
url[set] const(char)[]The URL to specify the location of the resource.
verbose[set] boolSet verbose. This will print request information to stderr.


mailTo () Setter for the recipient email addresses.
opCall (url) Sets to the URL of the SMTP server.
opCall ()
perform (throwOnError) Performs the request as configured.
setAuthentication (username, password, domain) Set the user name, password and optionally domain for authentication purposes.
setProxyAuthentication (username, password) Set the user name and password for proxy authentication.
shutdown () Stop and invalidate this instance.


CurlProxy Type of proxy
requestAbort Value to return from onSend delegate in order to abort a request
requestPause Value to return from onSend/onReceive delegates in order to pause a request



// Send an email with SMTPS
auto smtp = SMTP("smtps://");
smtp.setAuthentication("", "password");
smtp.mailTo = ["<>"];
smtp.mailFrom = "<>";
smtp.message = "Example Message";

See Also



Jonas Drewsen. Some of the SMTP code contributed by Jimmy Cao.


Boost License 1.0.