В качестве примера вы указали правильно отформатированные электронные письма в формате HTML, где add_alternative()
использовался для предоставления HTML-части сообщения.Вы исключили это из того, что написали.Если вы включаете фактическое тело HTML для своей электронной почты, тогда все, что вам нужно сделать, это обернуть изображение в элемент привязки (ссылка) с URL-адресом, на который вы пытаетесь создать ссылку.
(адаптировано из вашей ссылкивопрос)
msg.add_alternative("""\
<html>
<body>
<p>Click the Image below to visit our site!</p>
<a href="www.google.com"><img src="cid:{image_cid}"></a>
</body>
</html>
""".format(image_cid=image_cid[1:-1]), subtype='html')
Редактировать
Не нужно тестировать Python 2, но приведен следующий код из принятого ответа в том же потоке (который был указан как Python2.x совместимо), предположительно, должно работать.
msgAlternative = MIMEMultipart('alternative')
msgRoot.attach(msgAlternative)
msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><a href="www.google.com"><img src="cid:image1"></a><br>Nifty!', 'html')
msgAlternative.attach(msgText)
Опять же, здесь дело в том, что вы встраиваете изображение через html, что также позволяет вам применять теги привязки (и в основном любой другой стиль, который вы захотите).