JMeter:如何通过SMPT采样器发送格式化文本

jexiocij  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(131)

有没有办法通过JMeter SMTP采样器发送带链接的格式化文本?

方案:我需要发送一封电子邮件,其中的一个词,例如,我的“Instagram”将有一个链接到我的Instagram页面。
选项1:在Gmail中创建这样的电子邮件,发送给自己,然后下载它作为.eml文件,并使用SMTP采样器中的“发送.eml”选项发送。

然而,我的问题是,这些链接应该被改变,并导致不同的Instagram页面与每一个新的电子邮件发送,因此我需要通过它作为一个变量从CSV文件。这似乎是不可能实现的.eml文件,因为它需要修改之前,每个请求。除非有一种方法?

选项2(首选):不知何故,我需要在SMTP采样器的“邮件正文”中格式化文本。我曾尝试从“原始”.eml文件中复制/粘贴相同的样式和标记,但它总是作为纯文本发送,Gmail不会在客户端格式化它。

下面是一个带有格式化链接的原始Gmail文本的示例,我曾尝试在SMTP采样器的“邮件”文本框中使用它:
Visit my account @dummyaccount<https://l.instagram.com/?u=https%3A%2F%2Ftaplink.> for more info.
希望在电子邮件中看到以下内容:访问我的帐户@dummyaccount-其中@dummyaccount是一个超链接
实际:访问我的帐户@dummyaccount https://l.instagram.com/?u=https%3A%2F%2Ftaplink.了解更多信息。
如有任何建议,我们将不胜感激。

jxct1oxe

jxct1oxe1#

我不认为你可以用这种方式自定义SMTP采样器消息。你需要在电子邮件应用程序中编写消息,将其保存到.eml文件并发送此.eml文件,或者如果你想动态构建消息内容,你可以使用JSR223采样器和Groovy language发送消息。
示例代码:

Properties props = new Properties();
props.put("mail.smtp.host", "your-smtp-server-here");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");

def session = javax.mail.Session.getInstance(props, new CredentialsAuthentication() as javax.mail.Authenticator)
def msg = new javax.mail.internet.MimeMessage(session)

def from = new javax.mail.internet.InternetAddress("your-email-address-here", "your first and last name");
msg.setFrom(from);

def toAddress = new javax.mail.internet.InternetAddress("your-recipient-here ");

msg.setRecipient(javax.mail.Message.RecipientType.TO, toAddress);

msg.setSubject("Test");
msg.setContent("<html>\n" +
        "<body>\n" +
        "\n" +
        "<a href=\"http://link-to-your-instagram-profile\">\n" +
        "Link to my Instagram</a>\n" +
        "\n" +
        "</body>\n" +
        "</html>", "text/html")
javax.mail.Transport.send(msg);

class CredentialsAuthentication extends javax.mail.Authenticator {

    @Override
    protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
        return new javax.mail.PasswordAuthentication("your-username@most-probably-with-email.com", "your-password-here")
    }
}

相关问题