Sending Profiles

Sending profiles tell Gophish which SMTP servers to use when sending emails.

The SMTP endpoint allows you to create, view, and manage Gophish sending profiles.

Table of Contents

Quick Example

This example shows how to retrieve the name of every sending profile in Gophish.

from gophish import Gophish

api_key = 'API_KEY'
api = Gophish(api_key)

for smtp in api.smtp.get():



A sending profile contains the server address/port, and optional credentials.


  • id (int) The smtp ID

  • name (str) The smtp name

  • interface_type (str) The type of SMTP connection (for now, always use SMTP)

  • host (str) The host:port of the SMTP server

  • from_address (str) The address to send emails from (e.g. John Doe <>)

  • ignore_cert_errors (bool) Whether or not to ignore SSL certificate validation errors (set to true in the case of self-signed certificates)

  • modified_date (optional: datetime.datetime) The datetime this SMTP profile was previously modified


  • __init__(self, **kwargs) - Returns a new SMTP object



Gets the details for one or more sending profiles. To get a particular sending profiles, set the ID to the profile ID.

If the smtp_id is not set, all sending profiles owned by the current user will be returned.


  • If the smtp_id is set: models.SMTP

  • If smtp_id is None: list(models.SMTP)

Creates a new sending profile. This endpoint requires you to submit a gophish.models.SMTP object.


The gophish.models.SMTP object that was created.


Edits an existing sending profile. This endpoint requires you to submit an existing gophish.models.SMTP object with its id attribute set correctly.


The gophish.models.SMTP object that was edited.


Deletes the sending profile specified by smtp_id.


A gophish.models.Status message.


Here are some examples to show how to use the API.

All of these examples assume the following setup:

from gophish import Gophish
from gophish.models import *

api_key = 'API_KEY'
api = Gophish(api_key)

Get All Sending Profiles

smtp = api.smtp.get()

Get Single Sending Profile

smtp = api.smtp.get(smtp_id=1)

Create New Sending Profile

smtp = SMTP(name='Test SMTP') = "localhost:25"
smtp.from_address = "John Doe <>"
smtp.interface_type = "SMTP"
smtp.ignore_cert_errors = True

smtp =

Last updated